| 发表于:2007-08-14 20:01:024楼 得分:25 |
showmodaldialog 可以传递参数的 根据返回值 在index.aspx写js实现你需要的操作 参照下面 完整的请看我的blog http://blog.csdn.net/junval/archive/2007/03/13/1527768.aspx 关闭时候刷新父窗体 方法一: 在主页里写上: <iframe name=meizz width=0 height=0> </iframe> 模态框里写上: <form target= "meizz "> 将模态框提交给主页里那个隐藏的框架里 后台接收页里写上这么一句代码: <body onload= "if(window!=top)parnet.location.reload() "> 方法二: 在对子窗体操作后,如何刷新父窗体,因为此时父窗体的数据可能有变化 网上有很多人介绍用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,就是自己在重新加载一遍.4其他: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又三个参数,第一个为要开的子窗体,第二个为传递的变量,最后的为窗体的大小等些设置.如何传父窗体的值给子窗体,可以通过session,这样很方便,但是耗资源,可以通过url传string a= "test "; showmodaldialog( 'webform3.aspx?b= "+a+ " ', ' "+a+ " ', ' "窗口的设置 " ')把2中的showmodaldialog函数改为如上即可,这样在父窗体中的变量a就传递到了子窗体的b然后在子的.aspx中的page_load中取b的值即可,即: b=request.querystring[ "b "]; 这样b就可以在子窗体中用了 | | |
|