显示数据表格.RowDeleting'on ItemTemplate单击

本文关键字:on ItemTemplate 单击 数据 数据表 表格 RowDeleting 显示 | 更新日期: 2023-09-27 18:08:37

嘿,伙计们,我试图删除一个行itemtemplate按钮单击,但当调用GridView.DeleteRow方法从我的OnRowCommand方法,我得到的错误:

The GridView 'MyGridView' fired event RowDeleting which wasn't handled

据我所知,RowDeleting只有在您将CommandName设置为Delete时才会被调用?

以下是我的GridViewOnRowCommand的示例:

显示数据表格

<asp:GridView ID="MyGridView" runat="server" OnRowCommand="Gv_RowCommand">
        <Columns>
                .
                .
                .
            <asp:TemplateField>
                 <ItemTemplate>
                      <asp:ImageButton ID="ImgBtn" runat="server" CommandName="RemoveRow" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" ImageUrl="img.png" ToolTip="Remove" />
                 </ItemTemplate>
            </asp:TemplateField>
         </Columns>
</asp:GridView>

OnRowCommand后台代码

protected void Gv_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "RemoveRow")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                //THROWS EXCEPTION
                Gv_SelectedLineItems.DeleteRow(index);
            }
        }

我一直在msdn上遵循这个例子,但到目前为止还没有任何成功。请帮助。

显示数据表格.RowDeleting'on ItemTemplate单击

您在这里错过了一件事-调用Gv_SelectedLineItems.DeleteRow(index)是有意义的,期望RowDeleting函数

混乱来自您已经在按钮回调中,删除命令有时也在其中。

当您在GridView上执行DeleteRow时,它要求您具有此事件-希望您将在其中处理任何可能需要预删除的内容。

你的按钮点击- "RemoveRow"是无关的删除,它只是一个按钮点击。

编辑:

您需要创建RowDeleting事件处理程序。

protected void Gv_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}

在GridView的顶部,你需要添加事件处理程序:

<asp:GridView ID="MyGridView" runat="server" OnRowCommand="Gv_RowCommand" OnRowDeleting="Gv_RowDeleting">