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

子ページには、検索結果を表示する別のグリッドビューがあり、ユーザーは行の 1 つをクリックして番号を親ページに戻すことができます。Session を使用して値を返すことを考えましたが、ShowModalDialog を表示すると、親ページのコードが既に実行されているため、Session はこのシナリオでは機能しません。

親ページに値を返す方法を教えてください。とても感謝しています。

4

1 に答える 1

1

Wrox の例

showModalDialog を呼び出すときは、次のようにします。

var oReturnValue = showModalDialog(....);

showModalDialog 内で、テキスト ボックスに「txtForename」と「txtSurname」の ID があると仮定します。

<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 に答える