100分求高人指点:showModalDialog问题.
在一个主页面上,原来通过点击一个按钮,用Response.Redirect("..")转到一个B页面上,选择一个值,然后把值返回到主页面上,是OK的,
现在把B页面作为一个对话框弹出,然后选值返回到主页面上提示脚本错误.
是什么原因造成的?
以下是部分代码:
主页面上的调用:
btn.Attributes.Add("onclick", "javascript:openModalWin('../report/Rpt_AssetCategory.aspx','catSearch','320','550');");
子页面上的选择按钮代码:
private void btnSelect_Click(object sender, System.EventArgs e)
{
string returnId =this.Request.QueryString["id"];
System.Text.StringBuilder script = new System.Text.StringBuilder();
script.Append("<script language='javascript'>" + "\n");
script.Append("dataProc('"+ returnId +"','"+ SelectedCate + "');");
script.Append("</script>" + "\n");
this.RegisterStartupScript("SelectedCate",script.ToString());
//页面之间传递Session变量
Session["SelectedCate"] = SelectedCate;
JS中用到的2个函数
function openModalWin(pageName,returnParameter,subWindowWidth,subWindowHeight)
{
var mainWindowHeight = screen.height;
var mainWindowWidth = screen.width;
var windowTop = Math.floor((mainWindowHeight- subWindowHeight)/2);
var windowLeft = Math.floor((mainWindowWidth - subWindowWidth)/2);
var windowOpen = window.showModalDialog(pageName +"?id=" + returnParameter,window,'dialogWidth:'+ subWindowWidth +'px;dialogHeight:'+ subWindowHeight +'px;dialogTop='+ windowTop +';dialogLeft='+ windowLeft +';toolbar=yes;resizable=yes;scrollbars=yes');
}
function dataProc(strControlName,strSelectValue)
{
var parentWin = getParentWindow();
if (!(parentWin == null ))
{
window.dialogArguments.document.getElementById(strControlName).value=strSelectValue;
top.close();
}
}