GridView删除确认ButtonField

时间:2015-01-16 10:41:36

标签: c# asp.net

我想从网格视图中删除一行,并通过javascript确认。

我的gridview看起来像:

<asp:GridView ID="GridView1" runat="server" onrowcommand="GridView1_RowCommand">
        <Columns>
            <asp:ButtonField CommandName="delete" Text="Delete" />
        </Columns>
    </asp:GridView>

我已经尝试过使用TempleField并且它可以正常工作,但问题是从数据库中删除选择行的值。

我试过这样:

<asp:GridView ID="GridView1" runat="server" onrowcommand="GridView1_RowCommand">
        <Columns>
            <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="btnSave" runat="server" Text="Delete" OnClientClick="return confirm('Do you want to delete?')" CommandName="delete" />
            </ItemTemplate>
        </asp:TemplateField>
        </Columns>
    </asp:GridView>

尝试得到这样的价值:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
        if (e.CommandName == "delete")
        {
            int index = Convert.ToInt32(e.CommandArgument);
            string id = GridView1.Rows[index].Cells[1].Text.ToString();
            Response.Write(id);
        }
}

但它会在

上抛出FormatException
int index = Convert.ToInt32(e.CommandArgument);

有人能帮助我吗?对不起,但我的英语不好。

1 个答案:

答案 0 :(得分:1)

您需要设置按钮标记中的CommandArgument

 <asp:Button ID="btnSave" runat="server" Text="Delete" OnClientClick="return confirm('Do you want to delete?')" CommandName="delete" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"/>

Here是有关如何使用CommandArgument

的更多信息