2013-04-01 197 views
1

有沒有辦法阻止每次彈出時jQuery的模態對話框dropdownlist回傳被稱爲?因爲似乎整個頁面刷新,因此我的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> 

回答

0

只是覺得我應該分享解決這個。找到一個可行的解決方案,對於那些需要它的人,你可以使用:

<%if (!this.IsPostBack) 
     { %> 
    <script type = "text/javascript"> 
     $(function() { 
      //logic 
     }); 
    </script> 
    <%} %> 
0

我建議你創建一個打開一個彈出菜單的功能,從服務器端的網頁加載事件,讓我們註冊客戶端腳本時Postback != True,這個腳本將調用您的js腳本來打開對話框。希望這個幫助。

如果你不知道如何使用註冊客戶端腳本,你可以看看它在MSDN

0

如果你不需要它,當有人改變下拉列表回發,然後將其更改爲的AutoPostBack =」假」

如果你需要它回傳,把它放在一個UpdatePanel內使用依賴於它的狀態,就像這裏的例子正確的異步語法中的其它控件:http://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger.aspx

+0

嗨Rob G,這可以在客戶端腳本上完成嗎?而不是使用UpdatePanel? – klick