假设我想在允许用户保存记录之前提示用户。因此,我们假设我在标记中定义了以下按钮:
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click"></asp:Button>
要强制使用正常的 javascript 进行提示,我可以将保存按钮的 OnClick 事件连接为类似这样的内容(我可以在Page_Load
):
btnSave.Attributes.Add("onclick",
"return confirm('are you sure you want to save?');");
确认调用将被阻止,直到用户实际按下“是/否”按钮之一,这是我想要的行为。如果用户按“是”,那么我的btnSave_OnClick
方法将被调用。
对于等效的 jquery 对话框,我尝试了类似的方法(见下文)。但问题是,与 javascript recognize() 不同,它将一直通过此函数 (displayYesNoAlert),然后继续执行 C# 端的 btnSave_OnClick 方法。我需要一种方法来使其“阻止”,直到用户按下“是”或“否”按钮,然后返回 true 或 false,以便根据用户的答案调用或不调用 btnSave_OnClick 。
目前,我只是放弃并使用javascript的确认,我只是想知道是否有办法做到这一点。
function displayYesNoAlert(msg, closeFunction) {
dialogResult = false;
// create the dialog if it hasn't been instantiated
if (!$("#dialog-modal").dialog('isOpen') !== true) {
// add a div to the DOM that will store our message
$("<div id=\"dialog-modal\" style='text-align: left;' title='Alert!'>").appendTo("body");
$("#dialog-modal").html(msg).dialog({
resizable: true,
modal: true,
position: [300, 200],
buttons: {
'Yes': function () {
dialogResult = true;
$(this).dialog("close");
},
'No': function () {
dialogResult = false;
$(this).dialog("close");
}
},
close: function () {
if (closeFunction !== undefined) {
closeFunction();
}
}
});
}
$("#dialog-modal").html(msg).dialog('open');
}