有没有办法阻止jquery模式对话框在每次调用dropdownlist postback时弹出?因为好像整个页面都刷新了所以我的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>
答案 0 :(得分:0)
我建议你创建一个打开弹出窗口的函数,来自服务器端的页面加载事件,让我们在Postback != True
时注册一个客户端脚本,这个脚本将调用你的js脚本打开对话框。希望这有帮助。
如果您不知道如何使用注册客户端脚本,可以在MSDN
查看答案 1 :(得分:0)
如果有人更改下拉列表时您不需要回发,请将其更改为AutoPostBack =“false”
如果确实需要它进行回发,请将其放在UpdatePanel中,其他控件依赖于其状态,并使用正确的异步语法,如下例所示:http://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger.aspx
答案 2 :(得分:0)
我想我应该分享一个解决方案。找到一个可行的解决方案,对于那些需要它的人,你可以使用:
<%if (!this.IsPostBack)
{ %>
<script type = "text/javascript">
$(function () {
//logic
});
</script>
<%} %>