showModalDialog的用法
1.要弹出新页面,如果直接跳出窗口的话用response.redirct("新页面.aspx");就可以了
2.showModalDialog:模态窗口,始终获得焦点
被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。
要在父窗口里开一个showModalDialog,可以通过父窗口一个按钮的click事件
如:
this.Page.RegisterStartupScript("dffd","<script language=javascript>window.showModalDialog('webform3.aspxb','变量','dialogWidth=380px;dialogHeight=450px;status=yes;scroll=no;resizable=no;'</script>");
可以看到showModalDialog又三个参数,第一个为要开的子窗体,第二个为传递的变量,最后的为窗体的大小等些设置.
3,如何传父窗体的值给子窗体,可以通过session,这样很方便,但是耗资源,可以通过url传string a="test";
showModalDialog('webform3.aspx?b="+a+"','"+a+"','"窗口的设置
"')把2中的showModalDialog函数改为如上即可,这样在父窗体中的变量a就传递到了子窗体的b
然后在子的.aspx中的page_load中取b的值即可,即:
b=Request.QueryString["b"];
这样b就可以在子窗体中用了.
4.如何关闭弹出窗口:
Response.Write("<script language:javascript>javascript:window.close();</script>");
5.在对子窗体操作后,如何刷新父窗体,因为此时父窗体的数据可能有变化
网上有很多人介绍用
Response.Write("<script language:javascript> javascript:window.opener.location.reload();</script>");但是试了很多版本,发现其实opener是识别不了的,在子页面里无法刷新父窗体
只有返回后让父窗体自己刷新,即
this.Page.RegisterStartupScript("a","<script language=javascript>window.showModalDialog('webform2.aspx?b="+a+"','"+a+"','dialogWidth=380px;dialogHeight=450px;status=yes;scroll=no;resizable=no;');window.location=window.location;</script>");
就是写在父窗体的执行脚本语句里,可以看到比刚才只是多了个window.location=window.location,就是自己在重新加载一遍.