Asp.net 以编程方式删除gridview行
尝试删除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
<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);