.NET 1.0Windows 2003.NET 1.1Windows 2000ASPWindows XP中级开发Visual StudioJavascriptWindows.NETVisual BasicASP.NETC#
带多个参数的模态弹出对话框窗口






4.17/5 (36投票s)
2003年9月14日
1分钟阅读

326297
传递和返回多个参数的模态弹出对话框窗口
引言
本文展示了一个带有多个参数的模态弹出对话框。该示例创建父页面和子页面。父页面以模态方式调用子页面,并向子页面传递多个值。子页面显示传递的值,允许编辑,然后在完成时将更改后的值返回给父页面。子页面仅对父页面是模态的。要使子页面对整个桌面是模态的,请参阅下面的注意事项。
范围
ASP, ASP.NET, C#, VB.NET, Visual Basic, Java
步骤
- 在 Visual Studio 中打开一个新的 Web 项目
- 创建两个新的
WebForm
页面,命名为ParentWebForm
和ChildWebForm
- 打开
ParentWebForm
的 HTML 表面 - 找到黄色线条
- 删除除了黄色线条之外的所有代码
- 在现有的黄色线条下方插入以下 HTML 代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>Parent Webform</title> <script language="javascript"> function OpenChild() { var ParmA = retvalA.value; var ParmB = retvalB.value; var ParmC = retvalC.value; var MyArgs = new Array(ParmA, ParmB, ParmC); var WinSettings = "center:yes;resizable:no;dialogHeight:300px" //ALTER BELOW LINE - supply correct URL for Child Form var MyArgs = window.showModalDialog( "https:///ModalWin/ChildWebForm.aspx", MyArgs, WinSettings); if (MyArgs == null) { window.alert( "Nothing returned from child. No changes made to input boxes") } else { retvalA.value=MyArgs[0].toString(); retvalB.value=MyArgs[1].toString(); retvalC.value=MyArgs[2].toString(); } } </script> </HEAD> <body> <P><INPUT id="retvalA" type="text" value="AAA"></P> <P><INPUT id="retvalB" type="text" value="BBB"></P> <P><INPUT id="retvalC" type="text" value="CCC"></P> <P><BUTTON onclick="OpenChild()" type="button"> Open Child Window</BUTTON> </P> </body> </HTML>
- 在上面的代码中,找到写着 //ALTER BELOW LINE 的那一行
- 提供
ChildWebform
的正确 URL - 打开
ChildWebForm
的 HTML 表面 - 找到黄色线条
- 删除除了黄色线条之外的所有代码
- 在现有的黄色线条下方插入以下 HTML 代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Child Webform</TITLE> <script language="javascript"> function Done() { var ParmA = tbParamA.value; var ParmB = tbParamB.value; var ParmC = tbParamC.value; var MyArgs = new Array(ParmA, ParmB, ParmC); window.returnValue = MyArgs; window.close(); } function doInit() { var ParmA = "Aparm"; var ParmB = "Bparm"; var ParmC = "Cparm"; var MyArgs = new Array(ParmA, ParmB, ParmC); MyArgs = window.dialogArguments; tbParamA.value = MyArgs[0].toString(); tbParamB.value = MyArgs[1].toString(); tbParamC.value = MyArgs[2].toString(); } </script> </HEAD> <BODY onload="doInit()"> <P>Param A:<INPUT id="tbParamA" TYPE="text"></P> <P>Param B:<INPUT ID="tbParamB" TYPE="text"></P> <P>Param C:<INPUT ID="tbParamC" TYPE="text"></P> <BUTTON onclick="Done()" type="button">OK</BUTTON> </BODY> </HTML>
- 将项目的启动页面设置为 Parent Webform
- 运行项目。
最后说明
要使子页面对整个桌面是模态的,您需要在子页面中添加代码,使用 <body onblur="this.focus">。