2009-07-10 20 views
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 

なぜ複数の項目を選択していますか?私はProductIDsがすべての製品に固有であることを知っています。ありがとう!

+0

これはあなたのコードのすべてを見ることなく答えるのは難しいですが、このような一般的なミスでは、別のイベントが発砲しているようです。並べ替えのポストバックを実行するときに状態を変更している可能性のある、ページ読み込みイベントまたは別のイベントがありますか? – Harv

答えて

0

Harvは正直、コメントありがとうございました。私は実際に、問題の原因となっていたRowDataBound(これは動作しない、そこにはない)でこれをやろうとしていたバグのあるコードを残していました。私はそれを削除したと思ったが、そうは思わなかった。

ありがとう、良い直感!

関連する問題