假设我想在允许他们保存记录之前提示用户。因此,假设我在标记中定义了以下按钮:
<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 confirm() 不同,它会一直通过这个函数 (displayYesNoAlert),然后在 C# 端进入我的 btnSave_OnClick 方法。我需要一种使其“阻止”的方法,直到用户按下是或否按钮,然后返回真或假,以便根据用户的回答调用或不调用 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');
}