我的解决的问题是在弹出窗口中输入数据,保存后上层的父窗口可以刷新。我ASP页面中写了Javascript代码放<Head>部分
<Script >
  function showItem()
  {
          window.showModalDialog('A2.aspx',null,'dialogWidth:600px;dialogHeight:500px;dialogLeft:300px;dialogTop:400px;resizable:yes;status:no');
           
           __doPostBack('Refresh','')
           return true;
          
  }
</Script>
其中Refresh是一个linkbutton,点击执行一个DataBind()

代码没有问题,我看了很多例子,很多是这么写的。可是__doPostBack('Refresh','')就是不执行,真是奇怪。我没有时间研究为什么??

后来看到一个例子,
Transfer arguments between modal page and invoker page in asp.net 1.1
http://www.codeproject.com/useritems/modalpageinaspnet.asp
是将这段Javscript放在服务器端代码通过RegisterStartupScript注册就可以。
将下面代码放在父窗口点击事件中
 protected void Add_Click(object sender, EventArgs e)
    {
        string strScript = "<script >\n" +
    " var strReturn = window.showModalDialog('A2.aspx','desc','dialogWidth:423px;dialogHeight=355px');\n" +
    " __doPostBack('Refresh',strReturn);" +
    "</script>";
        if (!this.IsClientScriptBlockRegistered("OpenDialogScript"))
            this.RegisterStartupScript("OpenDialog", strScript);

    }

发现这样可以使得__doPostBack('Refresh','')执行

我不知道为什么,反正只要可以用,没有时间研究了。如果有哪位高手劳烦请指教