2

ポップアップの形式で子 ASPX ページを開くリンクを持つ親 ASP.NET ページがあります。

ポップアップ ページのコード ビハインドから親ページを制御する必要があります。たとえば、親ページのラベルの表示を有効/無効にしたり、テキスト ボックスのテキスト値を設定したりします。

どうすればこれを達成できますか?

ポップアップ ASPX を開くために使用されるコード:

//JavaScript function:
function showPopup()
{
     var strReturn = window.open("TaxReportInputsForm.aspx",'popup','width=390,height=120');
}

ボタンコード:

Page.ClientScript.RegisterStartupScript(GetType(), "popup", "showPopup();", true);
4

2 に答える 2

1

問題は、HTTP がステートレスであるため、各 HTTP 要求/ページが完全に独立して処理されることです。これは、子ページからの要求を処理しているときに、親ページでレンダリングされるものを直接変更する方法がないことを意味します。

ただし、子ページと親ページの両方がアクセスできる場所にフラグ/情報を子に書き出させ、親ページにその情報を見て何をレンダリングするかを決定させることで、レンダリングされるものを間接的に変更することができます。 . この状態を保存できるさまざまな場所がたくさんあります。

たとえば、子ページがShowSomeLabelコード ビハインドで Cookie にフラグを書き込む場合、子ページがクライアントに戻ると親ページが強制的に更新され、親ページのコード ビハインドで読み取ることができます。 Cookie からのそのフラグを使用して、どのラベルを表示するかを決定します。

これらのメソッドはすべて、親ページを更新するために少なくとも JavaScript を必要としますが、サブミットする前に非表示のフィールド/クエリ文字列の値を子ページから親ページにコピーするための追加の JavaScript が必要なものもあります。この情報を正確に格納する場所と方法は、特定の要件によって異なります。

于 2013-06-26T09:35:18.820 に答える
0

A.aspx が親ページで、B.aspx が開いているページだとすると、「オープナー」を使用して A.aspx の DOM を制御できます。

A.aspx リンク タグと javascript :

<a href="B.aspx" target="_blank">open page B</a>
<script type="text/javascript">
    function fun_A() {
        alert("hello");
    }
</script>

B.aspx

<input id="btnChild" type="button" value="call function in Page A" onclick="opener.fun_A();" />

A.aspx から B.aspx を開き、B.aspx からボタンをクリックすると、A.aspx アラート メッセージ "hello" が表示されます。

これがあなたを助けることを願っています。

于 2013-06-26T08:51:21.850 に答える