2009-07-10 53 views
0

我想保持选中的项目(数据键)在任何操作,如排序后选定的GridView中。我有保持选中的代码,但是有时项目的最后位置(排序之前的索引)仍然处于选定状态,同时还会选择所选项目的新索引。保持在gridview问题中选定的项目

无论何时它被选中,该项目都会绑定到详细信息视图,我正在使用该视图来读取值。这里是代码,任何帮助表示赞赏!谢谢

Private Sub ProductsGridView_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles ProductsGridView.DataBound 

    Dim Row As GridViewRow 
    Dim SelectedValue As String = ProductDetailsView.DataKey("ProductID") 
    If SelectedValue Is Nothing Then 
     Return 
    End If 

    ' Determine if the selected row is visible and re-select it 
    For Each Row In ProductsGridView.Rows 
     Dim KeyValue As String = ProductsGridView.DataKeys(Row.RowIndex)("ProductID") 
     If (KeyValue = SelectedValue) Then 
      ProductsGridView.SelectedIndex = Row.RowIndex 
     End If 
    Next 

End Sub 

为什么选择多个项目?我知道每个产品的ProductIDs都是独一无二的。谢谢!

+0

这很难回答,但没有看到你的所有代码,但总的来说,这样的错误归结为另一个事件正在解雇。您是否有页面加载事件或其他正在触发的事件,可能会在您进行此类回发时更改状态? – Harv 2009-07-10 20:14:52

回答

0

Harv是对的,感谢您的评论。我实际上有一些错误的代码留在了我想在RowDataBound中执行此操作的地方(这不起作用,不这样做)导致了问题。我以为我已经删除它,但我想不是。

谢谢,好直觉! (作为回答,我会标记它是正确的,如果你想Harv)