Asp.net 从数据表中删除现有行

Asp.net 从数据表中删除现有行,asp.net,gridview,Asp.net,Gridview,我需要根据从网格视图中选择的值从datatable中删除一行 我试图成功,但失败了 protected void GV_Repair_RowDeleting(object sender, GridViewDeleteEventArgs e) { var row = GV_Repair.Rows[e.RowIndex]; newdt.Rows.Remove(); bind_grid(); } 如果您有一

我需要根据从网格视图中选择的值从datatable中删除一行

我试图成功,但失败了

protected void GV_Repair_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    var row = GV_Repair.Rows[e.RowIndex];                            
    newdt.Rows.Remove();       
    bind_grid();
}

如果您有一个静态数据源,则可以执行以下操作:

protectedvoid GV\u Repair\u RowDeleting(对象发送方,GridViewDeleteEventArgs e)
{    
newdt.Rows.RemoveAt(e.RowIndex);
绑定网格();
}
如果数据源是动态的,则在GridView的模板字段中需要一个隐藏字段(如果还没有):

<asp:TemplateField>
    <ItemTemplate>
        <asp:HiddenField ID="hdnId" runat="server" Value='<%# Eval("ID") %>' />
        <!-- Other Items -->
    </ItemTemplate>
</asp:TemplateField>

我的数据源是动态的:(
protected void GV_Repair_RowDeleting(object sender, GridViewDeleteEventArgs e)
{    
    int id = 0;
    GridViewRow row = GV_Repair.Rows[e.RowIndex];
    HiddenField hdnId = row.FindControls("hdnId") as HiddenField;

    if(hdnId != null && int.TryParse(hdnId.Value, out id)
    {
        //Logic to delete from table where Id = id

    }

    bind_grid();
}