来自网格视图行的 jQuery 确认对话框始终回发
本文关键字:对话框 确认 jQuery 网格 视图 | 更新日期: 2023-09-27 18:35:38
我正在尝试使用这样的图像按钮删除网格视图中的一行
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgDelete" CssClass="gridColumnDelete" runat="server" ImageUrl="~/Imgs/Delete.png" AlternateText="Delete"
CommandName="Delete" CommandArgument="<%#((GridViewRow)Container).RowIndex %>"/>
</ItemTemplate>
</asp:TemplateField>
我已经写了jQuery对话框来确认删除,就像这样
$(document).ready(function () {
confirm();
});
function confirm() {
$(".gridColumnDelete").click(function () {
$("#dialog-confirm").dialog({
resizable: false,
height: 140,
modal: true,
buttons: {
"Yes": function () {
__doPostBack();
$(this).dialog("close");
},
Cancel: function () {
$(this).dialog("close");
}
}
});
});
return false;
}
用于对话框的div 标签是
<div id="dialog-confirm" title="Confirm?" style="display:none">
<p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Are you sure to delete the trip?</p>
</div>
问题是我是否在对话框中单击"是"或"取消",Gridview_RowCommand是在 C# 中执行的。
事实上,甚至在我单击确认对话框中的任何按钮之前Gridview_RowCommand就已执行
"Yes": function () {
$(this).dialog("close");
return true;
},
"Cancel": function () {
$(this).dialog("close");
return false;
}
<asp:ImageButton ID="imgDelete" OnClientClick="return confirm();" CssClass="gridColumnDelete" runat="server" ImageUrl="~/Imgs/Delete.png" AlternateText="Delete"
CommandName="Delete" CommandArgument="<%#((GridViewRow)Container).RowIndex %>"/>
删除末尾
的 return 语句并执行以下操作
"Yes": function () {
// __doPostBack();
$(this).dialog("close");
return true;
},
"Cancel": function () {
$(this).dialog("close");
return false;
}
并更改您的asp:ImageButton
如下所示
<asp:ImageButton ID="imgDelete" OnClientClick="return confirm();" CssClass="gridColumnDelete" runat="server" ImageUrl="~/Imgs/Delete.png" AlternateText="Delete"
CommandName="Delete" CommandArgument="<%#((GridViewRow)Container).RowIndex %>"/>
使用以下链接修复了该问题http://www.codeproject.com/Articles/238122/Delete-Functionality-in-GridView-with-Confirmation[代码项目][1]