我想从 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中如何删除一条记录后刷新页面

如何使用 C# 在 gridview 中添加新行?

如何在 SQL Server 中运行 DELETE 语句之前确定要在相关/其他表中删除的记录

DataSource和DataSourceID都在'GridView1'上定义。删除一个定义

使用 Python 删除对象列表中的重复项

GridView ImageButton 确认和删除记录