为什么当我尝试使用会话状态设置 GridView 的排序时,突然我的 GridView 不再具有 DataKeys?我所做的只是将以下代码放入我的 Page_Init;
Dim SortDirection As String = Session("SortDir")
Dim sortExpression As String = Session("SortExp")
If Not SortDirection Is Nothing AndAlso Not sortExpression Is Nothing Then
If (SortDirection = "asc") Then
GridView1.Sort(sortExpression, WebControls.SortDirection.Ascending)
Else
GridView1.Sort(sortExpression, WebControls.SortDirection.Descending)
End If
End If
但是,如果我将这一点注释掉,那么我的其他方法就不会再崩溃了,因为我的 GridView 现在有了它的 DataKeys。为什么是这样?
更新
当上述代码到位时,这就是停止工作的确切行。
Dim UserID = GridView1.DataKeys(e.RowIndex).Value.ToString
根据调试器 GridView1 有列,但它的 DataKeys 计数为 0。我收到的错误是;
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index