日期:2014-05-18  浏览次数:20681 次

在a.aspx?id=3中JS调用showModalDialog返回后,querystring id变成空
在a.aspx?id=3中JS调用showModalDialog('b.aspx?id=3','window',''),返回a.aspx页面后,querystring id变成空

调试后,发现一些hidden field也丢失了值。

------解决方案--------------------
var returnVaulue=window.showModalDialog('b.aspx?id=3','window','');

b页面:
设置 window.retunValue=Request.Querystring["id"]
------解决方案--------------------
var a = window.showModalDialog("AddPattern.aspx?name="+name,"","dialogWidth:900px;dialogHeight:720px;help:no"); 
if (a!=undefined)
{
document.getElementById("txtTEST_3").value=a;
}
------解决方案--------------------
返回a.aspx页面后,querystring id变成空?
你是怎么返回的?

a.aspx页面跟b.aspx直接没关系的。

------解决方案--------------------
你这只是关闭了模式窗口,原来的页面根本都没有任何变化,怎么会影响a.aspx里面的QueryString?
------解决方案--------------------
探讨

在b.aspx中,最后通过以下代码关闭窗口:
string strHtml = "<script language=\"javascript\">\r\n";
strHtml = strHtml + "window.parent.close();\r\n" + "</script>";
base……

------解决方案--------------------
探讨
var returnVaulue=window.showModalDialog('b.aspx?id=3','window','');

b页面:
设置 window.retunValue=Request.Querystring["id"]

------解决方案--------------------
探讨

在b.aspx中,最后通过以下代码关闭窗口:
string strHtml = "<script language=\"javascript\">\r\n";
strHtml = strHtml + "window.parent.close();\r\n" + "</script>";
base……

------解决方案--------------------
服务器端代码是先执行的,然后才执行js代码的。你的QueryString 跟客户端没关系。只要url是a.aspx?id=3
就永远不会丢的