GridView 删除确认 ButtonField

GridView Delete Confirm ButtonField

我想从我的 gridview 中删除一行并通过 javascript 确认。

我的 gridview 看起来像:

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

我已经尝试使用 TempleField 并且它有效,但问题是获取要从数据库中删除的 select 行的值。

我这样试过:

<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);

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

您需要从按钮标签

设置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

的更多信息