如何删除Gridview中新添加的行

本文关键字:添加 新添加 Gridview 何删除 删除 | 更新日期: 2023-09-27 17:59:13

我有两个GridView。一个是源网格视图,另一个是目标网格视图。两个GridView加载了一些记录。在目标网格视图中,添加了一个显示"删除"的CommandField列。在这里,我想将一行从源网格视图移动到目标网格视图。假设如果我不想,我可以通过单击GridView中的Delete命令字段来删除新添加的记录。

除了删除行,我已经完成了其他的事情。如何删除新添加的记录。目标网格视图中的DeleteCommand字段仅对新添加的记录启用,否则应启用false。任何建议。

如何删除Gridview中新添加的行

不要添加命令字段列,而是添加模板字段。在该templatefield中,添加一个itemtemplate、一个ImageButton,并对从源网格添加的行保持ImageButton的enabled属性为true,对其他行保持false。(您可以通过在gridview中保留一个标签来检查这一点,该标签应该被隐藏,并将从源网格获取的行的文本设置为"true")示例:

   <asp:TemplateField HeaderText="Delete">
 <ItemTemplate>
 <asp:ImageButton ID="imgbtnDelete" ToolTip="Delete" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"SomeField") %>' CommandName="Delete" />
</ItemTemplate>
</asp:TemplateField>

在CodeBehind 中

  protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
  Label lbl = (Label)e.Row.FindControl("lbl");
  ImageButton imgbtnDeleteUser = (ImageButton)e.Row.FindControl("imgbtnDelete");
  if (imgbtnDeleteUser != null && lbl.Text==true)
  {
        imgbtnDeleteUser.Enabled = true;    
  }
  else
  {
        imgbtnDeleteUser.Enabled = false;    
  }
}

假设您为每个DataGridView行呈现delete button,在删除按钮tag property中,您可以保存它所在行的索引,在delete按钮的事件处理程序上,您可以获取行索引,然后从datagridview中删除该行。当您也想从数据库中删除记录或希望在服务器端删除记录时,就会出现这种情况。

但是,如果在clientside处添加行,则可以使用javascriptdatagridview中删除行,因为datagridview呈现为html表,并且可以使用javascript从html表中删除行。

如果您为不同的网格视图使用两个数据表,也许您可以使用DataRow的DataRowState枚举。

在TemplateField 中具有删除按钮