0

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

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

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

在子页面,会有另一个显示搜索结果的gridview,用户可以点击其中一行将数字返回到父页面。本来想用 Session 传回值,但是在显示 ShowModalDialog 时,父页面的代码已经通过了,这意味着 Session 在这种情况下不起作用。

请告知如何将值返回到父页面。非常欣赏。

4

1 回答 1

1

来自 Wrox 的示例

当你调用 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);
于 2013-05-27T07:18:43.317 回答