1

jqueryモーダルダイアログボックスで問題に直面しています。データがデータベースに正常に保存された場合にのみモーダル ボックスを表示したい。私は c# と asp.net を使用しており、バックエンドでは Sql サーバー 2008 R2 を使用しています。現在、データは正常に入力されており、ボタンをクリックした後に「データがラベルに正常に保存されました」と表示されていますが、ボタンをクリックしてデータが保存されたときにのみモーダルボックスを表示したい.

このスクリプトを作成しました

$("#Btndiag").click(function () { $("#myModal").modal(); });

そして、コンテンツページの本文に私はこれを書いています

<asp:Button ID="Btndiag" runat="server" Text="show dialog" onclick="Btndiag_Click1" />
<div class="modal hide fade" id="myModal">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">×</button>
        <h3>Settings</h3>
    </div>
    <div class="modal-body">
        <p>Here settings can be configured...</p>
    </div>
    <div class="modal-footer">
        <a href="#" class="btn" data-dismiss="modal">Close</a>
        <a href="#" class="btn btn-primary">Save changes</a>
    </div>
</div>
4

1 に答える 1

0

目的を達成するには、バックエンドでデータを処理してから、ASP.NET Framework にスクリプトを実行させる必要があります。

これを実現するには、ClientScriptManager.RegisterClientScriptBlockページ全体のポストバック中に を使用するScriptManager.RegisterClientScriptBlockか、コントロールがUpdatePanel.

C# コード:

protected void Btndiag_Click1(object sender, EventArgs e)
{
    // process database

    // verify results
    if (success)
    {
       ClientScriptManager.RegisterClientScriptBlock(this, "Btndiag_Click1", "$('#myModal').modal();", true);
    }
}

ボタンとモーダル div が 内にある場合はUpdatePanel、 に置き換えClientScriptManager.RegisterClientScriptBlockScriptManager.RegisterClientScriptBlockください。


最後に、最後の情報として、ASP.NET は HTML としてレンダリングされるときに要素 ID を変更する$("#Btndiag").click(...)ため、スクリプト ( ) は機能しません。

次の方法で作業する必要があります。

$("#<%= Btndiag.ClientID %>").click(function () { $("#myModal").modal(); });

ボタンのクリック イベントでは何もする必要がないことに注意してください。フレームワークがポストバック後にスクリプトを自動的に実行するようにします。

于 2013-04-01T05:15:31.480 に答える