2012-03-20 51 views
0

我正在嘗試做一些具體的事情。我的想法是當用戶更改下拉列表的值時,嘗試使用JQuery彈出一個模式對話框。用戶應該選擇'繼續'或'取消'。我想要那個選擇的結果來確定我是否運行ASP.NET回發事件。現在,模式對話框彈出,但隨後ASP.NET頁面執行AutoPostBack並立即消失,並清除模式框。同時使用JQuery和ASP.NET OnSelectedIndexChanged事件處理程序的時機

什麼是一個好/優雅的方式來解決我的dillema?有沒有辦法讓ASP.NET等待結果,或者我需要某種隱藏的按鈕來處理稍後啓動回發?

感謝您的幫助!

<asp:Content ID="MainContent" ContentPlaceHolderID="Content" runat="Server"> 
    <asp:ScriptManagerProxy ID="smpProxy" runat="server"> 
     <Scripts> 
      <asp:ScriptReference Path="~/JQuery/jquery-1.7.1.min.js" /> 
      <asp:ScriptReference Path="~/JQuery/jquery-ui-1.8.18.custom.min.js" /> 
     </Scripts> 
    </asp:ScriptManagerProxy> 
    <asp:UpdatePanel ID="updPanel" runat="server"> 
     <ContentTemplate> 
      <script type="text/javascript"> 
       function CheckConfirmation() { 
        $('#divConfirmChange').dialog("open"); 
        return false; 
       } 

       function pageLoad() { 
        $("#divConfirmChange").dialog({ 
         autoOpen: false, 
         resizable: false, 
         height: 158, 
         modal: true 
        }); 
       } 
      </script> 

然後這裏是我的下拉列表進一步回落設定爲自動回可能會非常棘手,處理尤其是當它是一個更新面板內

<asp:DropDownList ID="ddlApprovalStatus" onChange="javascript:CheckConfirmation();" runat="server" AutoPostBack="true" onSelectedIndexChanged="ddlProgram_SelectedIndexChanged"> 

回答

0

下拉列表。您需要覆蓋頁面請求管理器的回發。下面的示例使用默認的javaScript確認,但如果您不喜歡標準瀏覽​​器確認,我會推薦jQuery Alert Dialogs plugin,因爲常規jQuery對話框不會阻止沒有一些額外掛鉤的觸發回發。

<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_initializeRequest(initializeRequest); 

    function initializeRequest(sender, args) { 
     var el = args.get_postBackElement().id; 
     if (el == '<%=ddlApprovalStatus.ClientID %>') { 
      if (!confirm('Are you sure?')) { 
       args.set_cancel(true);    
      } 
     } 
    } 
</script> 
+0

我從來沒有這樣做過。它看起來很有希望,但我一直收到一個Sys.WebForms.PageRequestManager爲空的錯誤。 (事實上​​,我的Sys對象在我調試時不包含名爲WebForms的屬性)我正在進一步研究嘗試解決問題,任何提示都會感激。感謝您的答覆! – aokelly 2012-03-20 21:44:52

+0

請嘗試將其放在頁面底部以解決您的錯誤。 – Justin 2012-03-21 06:08:12

相關問題