我的解决的问题是在弹出窗口中输入数据,保存后上层的父窗口可以刷新。我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','')执行
我不知道为什么,反正只要可以用,没有时间研究了。如果有哪位高手劳烦请指教