1

ドロップダウンリストのポストバックが呼び出されるたびにjqueryモーダルダイアログがポップアップするのをブロックする方法はありますか? ページ全体が更新されるように見えるため、私のjqueryモーダルダイアログもポップアップしますが、それをブロックしたいので、ページが初めて読み込まれたときにポップアップするだけで済みます。

これが私のJavascriptです。event.preventDefaultを使用してみましたが、まだ機能していません。

$(function() {
    $("#ddlNo").click(function(event) {
        event.preventDefault();
    });
    $("#dialog").dialog({
        autoOpen: true,
        closeOnEscape: false,
        modal: true,
        show: { effect: "fade", duration: 1000 },
        buttons: {
            "Confirm": function() {
                var bValid = true;
                allFields.removeClass("ui-state-error");
                bValid = bValid && check(true);

                if (bValid) {
                    $("#users tbody").append("<tr>" +
                "<td>" + agree.val() + "</td>" + "</tr>");
                    $(this).dialog("close");
                }
            }
        },
        close: function() {
            allFields.val("").removeClass("ui-state-error");
        }
    });
});

ここに私のマークアップがあります:

<asp:DropDownList ID="ddlNo" runat="server" DataSourceID="odsEq"
    DataTextField="No" DataValueField="Id" AutoPostBack="true">
</asp:DropDownList>
4

3 に答える 3

0

これに対する解決策を共有する必要があると思いました。それを必要とする人のために、実行可能な解決策を見つけました。

<%if (!this.IsPostBack)
      { %>
    <script type = "text/javascript">
        $(function () {
            //logic
        });
    </script>
    <%} %>
于 2013-04-02T03:31:55.253 に答える
0

誰かがドロップダウンリストを変更したときにポストバックする必要がない場合は、 AutoPostBack="false" に変更します

ポストバックする必要がある場合は、次の例のような適切な非同期構文を使用して、その状態に依存する他のコントロールと共に UpdatePanel 内に配置します: http://msdn.microsoft.com/en-us/library/system.web .ui.asyncpostbacktrigger.aspx

于 2013-04-01T03:28:57.977 に答える
0

ポップアップを開く関数を作成することをお勧めします。サーバー側のページ読み込みイベントから、クライアント スクリプトを登録しましょうPostback != True。このスクリプトは js スクリプトを呼び出してダイアログ ボックスを開きます。この助けを願っています。

クライアント登録スクリプトの使用方法がわからない場合は、MSDNで確認できます。

于 2013-04-01T03:21:19.883 に答える