Asp.net 以编程方式删除gridview行

Asp.net 以编程方式删除gridview行,asp.net,c#-4.0,gridview,webforms,delete-row,Asp.net,C# 4.0,Gridview,Webforms,Delete Row,尝试删除gridview中的行时,我不断返回一个错误(输入字符串的格式不正确) 不知道我做错了什么。有什么帮助吗 <asp:GridView ID="favoritesGrid" runat="server" OnRowDeleting ="favoritesGrid_RowDeleting"> <columns> <asp:CommandField HeaderText="Delete" ShowDeleteButton="True"/&g

尝试删除gridview中的行时,我不断返回一个错误(输入字符串的格式不正确)

不知道我做错了什么。有什么帮助吗

<asp:GridView ID="favoritesGrid" runat="server" OnRowDeleting ="favoritesGrid_RowDeleting">
    <columns>
        <asp:CommandField HeaderText="Delete" ShowDeleteButton="True"/>
        <asp:BoundField HeaderText="FavoritesId" DataField="FavoritesId"/>
        <asp:TemplateField HeaderText="Site Name">
             <ItemTemplate>
                 <asp:HyperLink ID="myHyperlink"
                                Text='<%# Eval("SiteName") %>'
                                NavigateUrl='<%# Eval("Url") %>'
                                runat="server">

                 </asp:HyperLink>
             </ItemTemplate>
        </asp:TemplateField>

    </columns>
</asp:GridView>



   protected void favoritesGrid_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        var delId = Convert.ToInt32(favoritesGrid.Rows[e.RowIndex].Cells[0].Text);
        //var id = favoritesGrid.Rows[e.RowIndex].Cells[0].Text;
        var delFavorites = new FavoritesDb();
        var delFavs = delFavorites.DeleteFavorite(delId);
        DataBind();
    }

受保护的void-favoritesGrid\u行删除(对象发送方,GridViewDeleteEventArgs e)
{
var delId=Convert.ToInt32(favoritesGrid.Rows[e.RowIndex]。单元格[0]。文本);
//var id=favoritesGrid.Rows[e.RowIndex]。单元格[0]。文本;
var delFavorites=new FavoritesDb();
var delFavs=delFavorites.DeleteFavorite(delId);
数据绑定();
}

位置0的单元格中有单词“delete”,无法转换为int。 您需要使用:

var delId = Convert.ToInt32(favoritesGrid.Rows[e.RowIndex].Cells[1].Text);
但是,这不是一个好方法,因为您可能会更改单元格顺序或添加新的单元格顺序。您最好使用DataKeyNames属性

aspx:


您能显示您得到的异常以及引发异常的位置吗?输入字符串的格式不正确。在“var delId=Convert.ToInt32(favoritesGrid.Rows[e.RowIndex].Cells[0].Text)”上
<asp:GridView DataKeyNames="FavoritesId" ...>
Convert.ToInt32(favoritesGrid.DataKeys[e.RowIndex].Value);