1.页面设置
主页面(default.aspx):为弹出页面提供参数的页面(用户可看到的页面)
中转页面(transfer.aspx):该页面控制关闭模态窗口返回值的时候不弹出新页面
弹出页面(pupup.aspx):弹出窗体
参数设置页面(setParameter.aspx):从主页面中取出参数传递到弹出页面(用户可看到的页面)
2.代码编写
(1)假设传输一数组:在主页面中需要弹出页面的地方写如下javascript
var array = new Array(2);
array[0] = 10;
array[1] = 15;
var returnValue= window.showModalDialog("transfer.aspx",array);
(2)中转页面是一个框架,两个frame分别是弹出页面与参数设置页面,将参数设置页面的宽度设置为0,那么在这个中转页面上我们就只看见弹出页面,如下:
<frameset rows="0,*" id = "myframe">
<frame src="setParameter.aspx" >
<frame src="popup.aspx" id = "popup">
</frameset>
(3)在参数设置页面的开始写如下javascript
var inParameter = window.parent.dialogArguments;
var appSysID=inParameter[0];
var objectID=inParameter[1];
top.document.frames.popup.location.href="popup.aspx?appSysID="+appSysID+"&objectID="+objectID;
在这里我们从父窗体中取出参数,进行转换,然后根据弹出页面frame的ID来对父窗体的子frame进行重定向。
(4)在弹出页面的服务端代码中我们就可以取出参数了
if (Request.QueryString["objectID"] != null)
{
string parameterString = Convert.ToString(Request.QueryString["objectID"]);
Response.Write(parameterString);
......
}
else
{
return;
}
而当弹出页面返回参数的时候,只要在返回参数的地方写如下代码就可以了:
window.parent.returnValue=122
window.parent.close();