假如A页面中有个iframe和btnA, iframe的SRC是B页面(B中含有btnB),单击B弹出模式窗口C(C页面含有关闭按钮),关闭按钮的代码为Response.Write("<script language=javascript>window.dialogArguments.location.href = window.dialogArguments.location.href;self.close();</script>");
问题就是不能刷新父窗口,提示:window.dialogArgument.location为空或不是对象
但我把该代码写在btnA中,就能刷新父窗口。
请大家帮忙解决

解决方案 »

  1.   

    刷新IFRAME和父窗口A的两种方式都能提供,谢谢
      

  2.   

    Response.Write("<script language=jscript>");
    Response.Write("window.parent.returnValue='" + rd.Value + "';");  // 父窗口返回的值
    Response.Write("window.dialogArguments.document.Form1.TextBox1.value='" + rd.Value + "';");   //刷新父窗口TextBox1.value 的值 ,rd.Value 为你的刷新值
    Response.Write("window.parent.close();");
    Response.Write("</script>");这样刷新父窗口
      

  3.   

    http://www.cnblogs.com/renyu732/archive/2005/06/20/177745.html
    关于showModalDialog()弹出窗口.更改了页面的数据,再次点击页面却没有刷新 http://www.cnblogs.com/renyu732/archive/2005/06/12/173206.html
      

  4.   

    问题:我用showModalDialog()弹出窗口.更改了页面的数据.关闭之后,在弹出这个窗口.可是数据没有改变.刷新后才会变.也就是说再次弹出这个窗口时他没有重新加载page_load()函数.帮帮忙.谢谢.解决方案:
    1. 在你的弹出窗口的Page_Load里面写上this.Page.Response.Expires = 0;2.
    在弹出页面的 HTML <head>区 里加入
    <head>
    <META http-equiv="Pragma" content="no-cache">
    </head>3.
    在page load中把这句加上!
    Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);4.
    为了防止缓存,可以在页面的顶端添加 Response.Expires = -1 
    使用java提供的方法,在jsp或者servlet中都可以 <% response.setHeader("Pragma","No-cache"); 
    response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0);
     %> 使用HTML标记,如下面: <HEAD> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="0"> 
    </HEAD> 5.showModalDialog('yourpage.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "id") %>'+'&temp='+Math.random(),window,'status:false;dialogWidth:600px;dialogHeight:400px') 总结:
    关键就是一个cache的问题.如何处理cache就是关键.
      

  5.   

    关于模态窗口(showModalDialog)的专题讨论!
    1.模态窗口的打开
    2.模态窗口的关闭
    3.模态窗口的传递参数。
    4.其他。
    1.window.showModalDialog("DialogPage.aspx","newwin","dialogHeight: 200px; dialogWidth: 150px; dialogTop: 458px; dialogLeft: 166px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;");2.window.close();3.传值
    ParentPage.aspx:
    window.showModalDialog("DialogPage.aspx?para1=aaa&para2=bbb");DialogPage.aspx:
    string str1=Request.QueryString["para1"].toString();
    string str2=Request.QueryString["para2"].toString();返回值
    DialogPage.aspx:
    window.returnValue="aaa";ParentPage.aspx:
    var str=window.showModalDialog("DialogPage.aspx");4.
    aspx页面在showmodeldialog情况下为什么一提交就重新打开一个页面?
    showmodaldialog打开的页面中在<head></head>之间加入一行:<base target="_self">5.如果是在数据绑定的模式窗体中,还可以在DataGrid中创建一个模板列,再加入Html的按钮,在按钮中加入:
    OnClick="returnValue='<%#DataBind.Eval(Container.DataItem,"Name")%>';window.close()"
    就可以实现在模式对话框中传递DataGrid的具体选中的行的相关值。
    6.例子 
    WebForm2.aspx.vb
        Inherits System.Web.UI.Page
        Protected WithEvents Button1 As System.Web.UI.WebControls.Button
        Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
        Protected WithEvents Button2 As System.Web.UI.WebControls.Button
        Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Attributes.Add("onclick", "var st=window.showModalDialog('user.aspx?val='+document.all('TextBox1').value);document.all('TextBox1').value=st;return st;")
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            RegisterStartupScript("key", "<script>window.opener=null;window.close(this);</script>")
        End Sub
    user.aspx.vb
        Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
        Protected WithEvents cancel As System.Web.UI.WebControls.Button
        Protected WithEvents ok As System.Web.UI.WebControls.Button
        Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox    
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim str As String
            If Not IsPostBack Then
                str = Request.QueryString("val")
                TextBox1.Text = str
            End If
        End Sub
        Private Sub cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cancel.Click
            RegisterStartupScript("key", "<script>window.returnValue='null';window.opener=null;window.close(this);</script>")
        End Sub
        Private Sub ok_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ok.Click
            RegisterStartupScript("key", "<script>window.returnValue=document.all('TextBox2').value;window.opener=null;window.close(this);</script>")
        End Sub
      

  6.   

    在主窗体的showModalWindow()语句之后,加上window.location.reload();showModalWindow(...);
    window.location.reload();
      

  7.   

    http://goody9807.611.cn/Announce/announce.asp?BoardID=2&ID=983&Upflag=1&Num=1