0

選択したアイテム(データキー)を、並べ替えなどの操作の後に選択したグリッドビューに保持しようとしています。選択したままのコードがありますが、アイテムの最後の位置(ソートされる前のインデックス)が、選択されたアイテムの新しいインデックスとともに選択されたままになることがあります。

選択されるたびに、そのアイテムは詳細ビューにバインドされ、値を読み戻すために使用しています。ここにコードがあります、どんな助けでも大歓迎です!ありがとう

    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

なぜこれが複数のアイテムを選択するのですか?ProductIDはすべての製品に固有であることを私は知っています。ありがとう!

4

1 に答える 1

0

Harv は正しかった、コメントをありがとう。私は実際に、RowDataBound でこれを実行しようとしていた場所にバグのあるコードが残っていました (これは機能しません。そこでは実行しないでください)。これが問題の原因でした。私はそれを削除したと思ったが、そうではなかったと思う。

ありがとう、良い直感!(それを回答として投稿してください。Harvが必要な場合は、それを正しくマークします)

于 2009-07-10T20:47:29.330 に答える