我遇到了将值返回到父页面的问题。 请帮助。
我有一个gridview,允许用户在行中添加新记录,但用户也可以单击该行上的“搜索”按钮,我将弹出一个以下代码。
TextBox txtCarNo = gvLookup.FooterRow.FindControl("txtNo") as TextBox;
System.Text.StringBuilder s = new System.Text.StringBuilder();
s.Append("<script language='javascript' id='SearchResult'> " );
s.Append("var WinSettings = 'dialogHeight:400px ; dialogWidth: 550px ;center: Yes ;resizable: No;status: no'; ");
s.Append("javascript: window.showModalDialog('Search.aspx?no=" + txtNo.Text.Trim().ToUpper() + "','',WinSettings); ");
s.Append("</script > ");
if ((!ClientScript.IsStartupScriptRegistered("SearchResult")))
{
ClientScript.RegisterStartupScript(this.GetType(), "SearchResult", s.ToString());
}
在子页面上,将有另一个显示搜索结果的网格视图,用户可以单击其中一行以将该数字返回到父页面。 我想过使用Session来传递值,但是当显示ShowModalDialog时,父页面上的代码已经通过,这意味着Session不会在这种情况下工作。
请告知如何将值返回到父页面。 非常感谢。
答案 0 :(得分:1)
当你调用showModalDialog时,你会这样做:
var oReturnValue = showModalDialog(....);
在showModalDialog中,假设您的文本框的ID为“txtForename”和“txtSurname”:
<body onbeforeunload="terminate();">
function terminate()
{
var o = new Object();
o.forename = document.getElementById("txtForename").value;
o.surname = document.getElementById("txtSurname").value;
window.returnValue = o;
}
然后继续进入主窗口:
alert(oReturnValue.forename + "\n" + oReturnValue.surname);