如何从window.ShowModelDialog返回值到父页面

本文关键字:返回值 ShowModelDialog window | 更新日期: 2023-09-27 18:15:23

我在返回值到父页面时遇到了一些问题。请帮忙。

我有一个网格视图,允许用户在行中添加新记录,但用户也可以单击行上的搜索按钮,我将显示一个弹出与以下代码。

        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将无法在此场景中工作。

请告诉我如何返回一个值到父页。非常感谢。

如何从window.ShowModelDialog返回值到父页面

来自Wrox的示例

当你调用showModalDialog时,你这样做:

var oReturnValue = showModalDialog(....);

在showModalDialog中,假设您的文本框的id为"txtname"answers"txt姓氏":

<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);