2011-04-15 25 views
0

我想在ASP按鈕(btnRejectAll)單擊事件中顯示模式確認對話框,並且一旦用戶在模式對話框中選擇「確定」,它需要提高OnClick服務器端按鈕「btnRejectAll」的事件。下面的代碼顯示了點擊時的模式確認對話框,但是一旦我們點擊OK按鈕,它就不會觸發服務器端事件。誰能幫我這個?JQuery確認對話框不會觸發ASP按鈕OnClick服務器端事件在用戶確認後

這是我的代碼。

<script language="javascript" type="text/javascript"> 

    $(function() { 


     $("#dialogReject").dialog({ 
      autoOpen: false, 
      height: 300, 
      width: 350, 
      modal: true, 
      buttons: { 
       "Reject": function() { 
        $(this).dialog("close"); 
        return true; 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
        return false; 
       } 
      } 
     }); 

     $("#btnRejectAll").click(function(event) 
     { 
      event.preventDefault(); 

      $("#dialogReject").dialog("open"); 
     }); 


    }); 

<asp:Button ID="btnRejectAll" runat="server" Text="Reject All" OnClick="btnRejectAll_OnClick" /> 
+1

對不起。 asp按鈕如何工作?它是否提交表單以將數據發送到服務器?如果是這樣,可以試試$(「#btnRejectAll」)。parents(「form」)。submit();在返回真實之前。 – 2011-04-15 15:57:59

回答

0

我找到了一種方法來觸發按鈕的服務器端事件對話框確認。這是代碼。

function ConfirmReject(detailId) { 

     var leaveId = $("#hdnLeaveReqId").val(); 



     $("#dialogReject").dialog({ 
      autoOpen: true, 
      height: 300, 
      width: 350, 
      modal: true, 
      buttons: { 
       "Reject": function() { 
        $.ajax({ 
         type: "POST", 
         url: "LeaveRequestForm.aspx/RejectLeave", 
         data: "{'LeaveReqId':'" + leaveId + "', 'detailId':'" + detailId 
           + "', 'rejectReason':'" + $("#txtRejectReason").val() + "'}", 
         dataType: 'json', 
         contentType: "application/json; charset=utf-8", 
         success: function(msg) { location.reload(); } 
        }); 

        $(this).dialog('close'); 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

     return false; 
    } 

<asp:Button ID="btnRejectAll" runat="server" Text="Reject All" 
         OnClientClick="return ConfirmReject(0);" /> 

在代碼隱藏類:

<WebMethod()> _ 
Public Shared Function RejectLeave(ByVal LeaveReqId As Integer, ByVal detailId As Integer, ByVal rejectReason As String) As String 

    'Do Something here 

    Return "success" 

End Function 
0

你防止的btnRejectAll單擊默認的行動,但你永遠不調用的「拒絕」行動的任何行動。我對ASP.NET並不熟悉,但從您的標記看起來,您似乎取消了對btnRejectAll_OnClick的調用。如果這是一個JavaScript函數,那麼你可以這樣做:

"Reject": function() { 
      $(this).dialog("close"); 
      btnRejectAll_OnClick(); 
      return true; 
      }, 

如果不是(我懷疑它是不是),那麼它可能觸發提交表單的。所以你可以這樣做:

"Reject": function() { 
      $(this).dialog("close"); 
      $('#form').submit(); 
      return true; 
      },