在
web
应用中,如何以模态窗口方式新打开子窗口,并往子窗口里传递多个值,而在子窗口中,能接受这些值,并且对这些值修改后,可以再提交传递给父窗口呢?在
codeproject
上,有篇文章介绍了方法,下面介绍如下:
1 先建一个叫 ParentWebForm 的父窗口,写入其中的 HTML 代码如下:
1 先建一个叫 ParentWebForm 的父窗口,写入其中的 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(
"http://localhost/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 οnclick="OpenChild()" type="button">
Open Child Window</BUTTON>
</P>
</body>
</HTML>
2
建立一个叫
ChildWebform
的窗体,写入
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 οnlοad= "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 οnclick= "Done()" type= "button" >OK</BUTTON>
</BODY>
</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 οnlοad= "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 οnclick= "Done()" type= "button" >OK</BUTTON>
</BODY>
</HTML>