0

更新パネルを取得したマスター ページから JavaScript アラートを呼び出そうとしています。その中にボタンとテキストボックスがあります。

マスター ページのボタンをクリックすると、アラートを呼び出す必要があります。これまでのところ、機能していないようです。助けてください。

 Page.ClientScript.RegisterStartupScript
                        (this.GetType(), "alert", "invokeMeMaster();", true);

これは、ボタンクリックで書いたものです。invokerMEMaster にはアラート メッセージのみが含まれています。アラートの [OK] ボタンをクリックしたときにページをリロードする必要があります。どうすればそれを行うことができますか?

4

4 に答える 4

1

更新パネルは、ポストバック時に JavaScript コードをクリアするため、このコードをヘッダーに配置してみてください。

<script type="text/javascript">

$(document).ready(
function(){

   Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
   function EndRequestHandler(sender, args) {//put your code here}

});

</script>
于 2011-07-20T10:18:00.340 に答える
0

あなたの質問を正しく理解できれば、マスター ページから呼び出す必要があるコンテンツ ページに JS 関数がありますか?

私なら、非表示の入力コントロールとアラート機能をマスター ページに追加します。

    <input runat="server" id="hdnAlert" name="Alert" type="hidden" />

    <script type="text/javascript"  language="javascript">  
        function AlertMe(){ alert(document.getElementByID("hdnAlert").value); }
    </script>

次に、コンテンツ ページから入力コントロールの値を変更できます。

    HtmlInputHidden hdnTemp = new HtmlInputHidden();
    hdnTemp = (HtmlInputHidden)Master.FindControl("hdnAlert");
    hdnTemp.Value = "Message To Alert";

次に、マスター ページのボタンで、マスター ページにある "AlertMe" 関数を呼び出すだけです。

于 2011-07-21T20:44:51.553 に答える
0

ScriptManagerProxyが必要です。 ScriptManagerはコンテンツ ページに存在します。

于 2011-07-20T10:13:36.783 に答える
0

私があなたの問題を推測できる場合(精神的なデバッグ):更新パネルが更新されると、JavaScriptがページでレンダリングまたは起動されません。

更新パネルのように JavaScript を登録してみてください。

ScriptManager.RegisterClientScriptBlock(Page,typeof(string),"JavaScriptCall",script.ToString(), false);
于 2011-07-20T10:13:57.390 に答える