JQuery确认对话框不会触发ASP按钮OnClick服务器端事件在用户确认后
问题描述:
我想在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" />
答
我找到了一种方法来触发按钮的服务器端事件对话框确认。这是代码。
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
答
你防止的btnRejectAll
单击默认的行动,但你永远不调用的“拒绝”行动的任何行动。我对ASP.NET并不熟悉,但从您的标记看起来,您似乎取消了对btnRejectAll_OnClick
的调用。如果这是一个JavaScript函数,那么你可以这样做:
"Reject": function() {
$(this).dialog("close");
btnRejectAll_OnClick();
return true;
},
如果不是(我怀疑它是不是),那么它可能触发提交表单的。所以你可以这样做:
"Reject": function() {
$(this).dialog("close");
$('#form').submit();
return true;
},
对不起。 asp按钮如何工作?它是否提交表单以将数据发送到服务器?如果是这样,可以试试$(“#btnRejectAll”)。parents(“form”)。submit();在返回真实之前。 – 2011-04-15 15:57:59