[英]Asp.net JQuery Plugin Confirm Box not working
我想在用戶上傳數據之前在asp.net網站上顯示一個確認對話框。
我正在使用http://marcosesperon.es/apps/messi/對話框插件。
客戶端單擊該對話框。
我希望僅在用戶單擊“是”時才執行服務器端代碼。
我能夠顯示確認框,但是我的服務器端代碼未執行。
請幫忙。
客戶代碼
var confirmed = false;
if (!confirmed) {
new Messi('Do you want to update status ?.', {
title: 'Confirm',
buttons: [{ id: 0, label: 'Yes', val: 'Y' }, { id: 1, label: 'No', val: 'N' }],
callback: function (val) {
confirmed=val;
}
}
);
}
return confirmed;
這是我的代碼。
服務器代碼
<asp:Button ID="Button2" CssClass="myButton2" runat="server" OnClientClick="if( ! Button2Confirm()) return false;" Text="Update" Width="117px" OnClick="Button2_Click" />
為什么在這種情況下使用jQuery Ajax調用。
請參見下面的示例jQuery Ajax調用示例
http://www.aspsnippets.com/Articles/Call-ASPNet-Page-Method-using-jQuery-AJAX-Example.aspx
var confirmed = false;
if (!confirmed) {
new Messi('Do you want to update status ?.', {
title: 'Confirm',
buttons: [{ id: 0, label: 'Yes', val: 'Y' }, { id: 1, label: 'No', val: 'N' }],
callback: function (val) {
$.ajax({
type: "POST",
url: "Your_webpage.aspx/your_web_method",
data: '{name: confirmed }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function(response) {
alert(response.d);
}
});
}
}
);
}
return confirmed;
:)
你的
return confirmed;
在按鈕回調之前運行,因此此函數將始終返回false。 您必須在回調函數中調用服務器端代碼:
new Messi('Do you want to update status ?.', {
title: 'Confirm',
buttons: [{ id: 0, label: 'Yes', val: 'Y' }, { id: 1, label: 'No', val: 'N' }],
callback: function (val) {
if(val == 'Y')
// call server side
}
}
);
要調用您的按鈕,可以使用以下方法:
__doPostBack('Button2','');
使用JavaScript,但我建議您看看jQuery ajax和ASP.NET Web API 。
如果要在OnClientClick中執行此操作,則不能使用插件,而必須返回JavaScript確認功能:
OnClientClick="return confirm("Are you sure?");"
確認將停止執行,直到用戶按下其中一個按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.