我想从 GridView 中删除记录。在此之前要求确认,例如“您确定要删除吗?”
Posted
技术标签:
【中文标题】我想从 GridView 中删除记录。在此之前要求确认,例如“您确定要删除吗?”【英文标题】:I want to delete record from GridView.Before to this ask for confirmation like "Are you sure to delete?" 【发布时间】:2011-07-27 09:07:10 【问题描述】:我在 GridView 中使用了命令字段,
<asp:CommandField HeaderText="Delete" ShowDeleteButton="True" />
我用javascript写了一个函数
function confirm_Delete()
var r = confirm("Are you sure you want to Remove this Record!");
if (r == true)
alert("Record Deleted");
return true;
else
return false;
我将如何在删除点击时调用它。 请推荐!
【问题讨论】:
【参考方案1】:你不能使用命令字段来实现这一点,你必须制作一个模板字段:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbtnDelete" runat="server" CommandName="Delete" Text="Delete"
OnClientClick="javascript:return confirm('Are you sure you want to Remove this Record!');">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
它的行为方式与您当前使用命令字段的方式相同。
【讨论】:
【参考方案2】:protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
if (e.Row.RowType == DataControlRowType.DataRow)
((LinkButton)e.Row.Cells[0].Controls[0]).Attributes.Add("onclick", "return Conformation();");
【讨论】:
【参考方案3】:我认为你可以在命令域中实现这一点
假设它是第一列,Found Here
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
if (e.Row.RowType == DataControlRowType.DataRow)
// reference the Delete LinkButton
LinkButton db = (LinkButton)e.Row.Cells[0].Controls[0];
db.OnClientClick = "javascript:return confirm('Are you certain you want to delete?');"
【讨论】:
if (e.ColumnIndex == dataGridView.Columns["clm_Delete"].Index) 是我如何验证在删除列中单击了删除按钮,如果你想调整它以使用某些东西除了第 1 列。【参考方案4】:我会像@Muhammad 告诉你的那样做,在服务器端删除代码我还会注册一个脚本来显示“记录已删除”消息,如下所示;
public void MethodForDeletingARecord()
ScriptManager.RegisterStartupScript(this.Page, base.GetType(), "RecordDeletedMessage", "javascript:alert('Record Deleted');", true);
【讨论】:
玛格丽特复制/粘贴您的代码只是为了给他自己投票。我已经举报了他,因为对我做了同样的事情。以上是关于我想从 GridView 中删除记录。在此之前要求确认,例如“您确定要删除吗?”的主要内容,如果未能解决你的问题,请参考以下文章
c# asp.net GridView中如何删除一条记录后刷新页面
如何在 SQL Server 中运行 DELETE 语句之前确定要在相关/其他表中删除的记录