我有两个GridView。一个是Source GridView,另一个是Destination GridView。 两个GridView加载了一些记录。 在目标网格视图中,添加了一个显示“删除”的CommandField列。 在这里,我想将一行从Source GridView移动到Destination GridView。假设我不想要,我可以通过单击GridView中的删除命令字段来删除新添加的记录。
除了删除行外,我还完成了其他事情。如何删除新添加的记录。 目标网格视图中的DeleteCommand字段仅对新添加的记录启用,否则应启用false。 任何建议。
答案 0 :(得分:1)
假设您为每个delete button
行呈现DataGridView
,在删除按钮tag property
中,您可以在删除的事件处理程序上保存它所在行的索引按钮,您可以获取行索引,然后您可以从datagridview中删除该行。如果您想要从数据库中删除记录,或者您想在服务器端执行此操作,则会出现这种情况。
但是如果要在clientside
添加行,则可以使用datagridview
从javascript
中删除行,因为datagridview将呈现为html表,您可以从中删除行使用javascript的html表。
答案 1 :(得分:1)
如果您对不同的网格视图使用两个数据表,也许您可以使用DataRow的DataRowState枚举。
中设置删除按钮答案 2 :(得分:1)
不要添加命令字段列而是添加模板字段。在该模板字段中添加一个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;
}
}