指數我實現網格視圖在我的應用程序...當我試圖刪除從網格視圖記錄它拋出這個錯誤:指數超出範圍。必須是非負數且小於集合的大小。參數名:在C#asp.Net
指數超出範圍。必須是非負數且小於集合的大小。 參數名稱索引:
這是我的服務器端代碼:
protected void gridview1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
foreach (GridViewRow gv in gridview1.Rows)
{
CheckBox check = (CheckBox)gv.FindControl("deleteall");
if (check.Checked)
{
con.Open();
if (gridview1.DataKeys != null)
{
**In this line only the error occurs**
int RegNo = Convert.ToInt32(gridview1.DataKeys[gv.RowIndex].Value);
}
cmd = new MySqlCommand("delete from studentinfo where Regno='" + 1 + "'", con);
// cmd.Parameters.Add("@id", RegNo);
cmd.ExecuteNonQuery();
con.Close();
}
}
}
我的客戶端電網:
<asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" AllowSorting="True" onrowdeleting="gridview1_RowDeleting" SelectedIndex="1">
<Columns>
<asp:TemplateField HeaderText="Delete All">
<ItemTemplate>
<asp:CheckBox ID="deleteall" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Register Number">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("RegNo") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("RegNo") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Section">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Section") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Section") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="Delete" ShowDeleteButton="True" />
</Columns>
</asp:GridView>
任何一個可以請幫我SOVE這個問題提供一些思路或示例代碼...
異常處的堆棧跟蹤處於什麼行? – 2010-09-11 10:43:02
int RegNo = Convert.ToInt32(gridview1.DataKeys [gv.RowIndex] .Value); – 2010-09-11 10:54:07
在這一行只有這個錯誤發生 – 2010-09-11 10:54:45