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

我建议你创建一个打开弹出窗口的函数,从服务器端的页面加载事件,让我们注册一个客户端脚本Postback != True,这个脚本会调用你的js脚本来打开对话框。希望这有帮助。

如果您不知道如何使用注册客户端脚本,您可以查看MSDN

于 2013-04-01T03:21:19.883 回答
0

如果当有人更改下拉列表时您不需要它回发,则将其更改为 AutoPostBack="false"

如果您确实需要回发,请将其放在 UpdatePanel 中,其他控件取决于其状态,使用正确的异步语法,如此处的示例:http: //msdn.microsoft.com/en-us/library/system.web .ui.asyncpostbacktrigger.aspx

于 2013-04-01T03:28:57.977 回答
0

只是想我应该分享一个解决方案。找到了一个可行的解决方案,对于那些需要它的人,您可以使用:

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