我正在开发一个基于ASP.NET的WebForms应用程序,并用C#编码。此应用程序执行CRUD操作,每次用户想要执行操作时,我都需要向客户端显示确认消息。我决定创建一个jQuery函数,它接收窗口的标题,显示给用户的消息以及代表该动作的按钮。
这是我的Javascript功能:
var _confirm = false;
function Confirm(str, strtitle,button) {
e.preventDefault();
if (!strtitle) strtitle = 'Mensaje de error';
$('#dialog').show();
$('#dialog').html(str);
$("#dialog").dialog({
autoOpen: true,
draggable: false,
resizable: false,
modal: true,
title: strtitle,
width: 350,
height: 180,
show: "slide",
hide: "puff",
buttons: {
"No": function () {
jQuery(this).dialog("close");
},
"Yes": function () {
jQuery(this).dialog("close");
_confirm = true;
button.click();
}
},
close: function () {
jQuery(this).remove();
}
});
return false;
}
这是ASP按钮:
<asp:button id="btnOk" onclick="btnDGV_Click"
onclientclick="Confirm('Desea eliminar el registro', 'Confirmacion', this);"
runat="server" text="Eliminar Registro">
</asp:button>
事件的代码在服务器端onclick(暂时只是一条确认消息):
protected void btnDGV_Click(object sender, EventArgs e) {
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Registro eliminado exitosamente !!!')", true);
}
问题在于,当我单击按钮时,始终会显示服务器端消息,并且永远不会显示jQuery对话框。可能是什么问题?
答案 0 :(得分:1)
修改你的代码:
onclientclick="Confirm('Desea eliminar el registro', 'Confirmacion', this);return;"
这会阻止按钮进行回发
并修改:
"Yes": function () {
jQuery(this).dialog("close");
__doPostBack('<%=btnOk.ClientID%>', '')
button.click();
}
如果你点击&#34;是&#34;此代码进行回发并调用按钮的onclick属性上指定的方法
答案 1 :(得分:0)
以下是一些需要检查的内容: