本帖最后由 mzjmicrosoft 于 2009-10-29 15:59:24 编辑

解决方案 »

  1.   

    有没试试用opener调用副窗体?
      

  2.   

    父窗体...window.opener.location='B窗体.aspx?id=" +Temp1 + "'
      

  3.   

    如果是opener的话
    我就不发帖了我试过opener可以,但showModalDialog怎么搞?
      

  4.   

    今天New人都上哪休息了...
      

  5.   

    你在B窗体写一个JavaScript方法:
    function AddJH(url) {window.showModalDialog(url,"","dialogwidth:260px;dialogheight:290px;center:yes"); 
    window.location.href=document.location.href;
    }
    B窗体哪个点击按钮事件的时候:
    this.Button7.Attributes.Add("onclick", "窗体.aspx?id=" + Server.UrlEncode(Session["XXXX"].ToString()+ "“);
    这样应该就可以C窗体关闭的时候刷新B窗体了
      

  6.   


    楼下不用在回复关于window.opener的答案
    俺问的是showModalDialog怎么搞?坐等高人... ...
      

  7.   

    哪个事件代码错了,应该用哪个”“)
    this.Button7.Attributes.Add("onclick", "AddJH(”窗体.aspx?id=" + Server.UrlEncode(Session["XXXX"].ToString()+ ")"); 
      

  8.   

    B调用showModalDialog之后
    等到C关闭以后再写句
    document.form1.submit();
    这样就可以提交到后以台,就可以刷新B的
      

  9.   

    在那个showModalDialog后加
    window.location.href=document.location.href; 
      

  10.   


    不行,你那个相当与 Response.Redirect("B窗体");
      

  11.   

    http://hi.baidu.com/yangyunfeixiaoxiang/blog/item/d3e3310a2909aa34b0351d5a.html
    这里可能有你要的答案
      

  12.   

    关闭C的时候,window.dialogArguments.location.reload();
      

  13.   


    报错....dialogArguments不是对象
      

  14.   

    B中的window.showModalDialog('C窗体.aspx?id=" + Server.UrlEncode(Session["XXXX"].ToString()+ "','window','dialogWidth:600px;DialogHeight=400px;status:no;help:no;resizable:yes;');document.execCommand('Refresh');");第二个参数window,单隐号去掉,再用window.dialogArguments.location.reload()试下
      

  15.   

    this.Button7.Attributes.Add("onclick", "window.showModalDialog('AddContractAnnal.aspx?AnnID=" + Server.UrlEncode(Session["xxx"].ToString()) + "',window,'dialogWidth:600px;DialogHeight=400px;status:no;help:no;resizable:yes;');window.location='#';");去掉了
     //关闭
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Write("<script>window.dialogArguments.location.reload();</script>");
            Response.Write("<script>window.close();</script>");
        }
    不报错了,但B窗体还是没刷新.....
    看来这个方法 还是不行.
      

  16.   

    都快成 子窗体与父窗体 专家了...以前的问题:子窗体向父窗体传值:http://topic.csdn.net/u/20091012/16/9a082f7b-97a4-4475-9d7e-b241fed6df8a.html父窗体向子窗体传值http://topic.csdn.net/u/20091019/17/c1e638db-3c07-4053-a498-6e6804801102.html三个窗体间的传值(父窗体、子窗体、孙子窗体)
    http://topic.csdn.net/u/20091020/16/b3e78af2-add8-422f-a2ae-67dd58c33a84.html
      

  17.   

    window.opener.location.reload();或 window.parent.loaction.reload()  refresh
    关闭窗体:window.opener=null;window.close();
      

  18.   

    早上起来在下问题:A窗体打开B窗体(这个B窗体算父窗体嘛?),然后B窗体打开C窗体,在C窗体里新增一条记录,然后刷新B窗体,就这么简单...能实现嘛?
      

  19.   


    问题解决:其实很简单B窗体改动如下:PS:因为B窗体要传参数,所以在后台先定义一个公共变量
    public static int QQ;//公共变量
    然后在Page_Load事件中:

    QQ = Convert.ToInt32(Session["xxx"].ToString());
    this.Button7.Attributes["onclick"] = "javascript:Add();";
    前台JavaScript脚本: <script type="text/javascript">
            function Add1()
            {
                window.showModalDialog("C窗体.aspx?AnnID=<%=QQ%>","window","dialogWidth:880px;DialogHeight=500px;status:no;help:no;resizable:yes;");
                window.location='#';
            }
        </script>最后很重要的一点,在Button7的单击事件中重新绑定数据源:

    protected void Button7_Click(object sender, EventArgs e)
        {
            DataBindXXX();
        }
    结果:俺胜利的【征服】了刷新...
      

  20.   

    这个东东我不知道怎么解决,但是我知道有个东东叫ModalPopupExtender,有了这个你就不用去想什么父子窗口刷新了。。建议去看看。。挺不错的一个小东西
    http://msdn.microsoft.com/zh-cn/magazine/cc164247.aspx