C# 使用gridview asp.net分页时索引超出范围

C# 使用gridview asp.net分页时索引超出范围,c#,gridview,C#,Gridview,在此处获取错误: int index = -1; foreach (GridViewRow gvrow in lstHoliday.Rows) { index = (int)lstHoliday.DataKeys[gvrow.RowIndex].Value; bool result = ((CheckBox)gvrow.FindControl("Selector")).Checked; } 我做错了什么 需要提及标记上GridView的DataKeyNames属性。上面没有提到

在此处获取错误:

int index = -1;
foreach (GridViewRow gvrow in lstHoliday.Rows)
{
    index = (int)lstHoliday.DataKeys[gvrow.RowIndex].Value;
    bool result = ((CheckBox)gvrow.FindControl("Selector")).Checked;
}
我做错了什么


需要提及标记上
GridView
DataKeyNames
属性。上面没有提到导致错误的原因


关于

的更多信息,你不能只使用int index=0;一排排的大小是多少?“gvrow.RowIndex”必须返回一个负的或超出边界的索引值。另一个注意事项是:始终在要转换为int或其他值的值上加括号。例如(int)(lstfloiday.DataKeys[gvrow.RowIndex].Value)lstfloiday.Rows计数为8,所以您没有在标记上提到数据键?如我所见,索引被分配到这里。它不用于指向索引。这不应该导致任何错误。我错了吗?你提到的数据键是什么。@IsmetAlkan他将变量初始化为一个负数,这是不必要的。没错,但这不是问题的真正原因。gvrow.RowIndex为。
index = (int)lstHoliday.DataKeys[gvrow.RowIndex].Value;

Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index