2009-07-10 16 views
0

Ich versuche, das ausgewählte Element (datakey) in einer nach einer Operation wie z. Ich habe Code, der es ausgewählt hält, aber manchmal die letzte Position des Artikels (Index vor dem Sortieren) bleibt ausgewählt, zusammen mit dem neuen Index für das ausgewählte Element.Ausgewähltes Element in Gridview-Problemen ausgewählt

Jedes Mal, wenn es ausgewählt wird, ist dieses Element an eine Detailansicht gebunden, die ich verwende, um den Wert zurück zu lesen. Hier ist der Code, jede Hilfe wird geschätzt! Danke

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 

Warum werden mehrere Artikel ausgewählt? Ich weiß, dass die ProductIDs für jedes Produkt einzigartig sind. Vielen Dank!

+0

Dies ist schwer zu beantworten, ohne Ihren gesamten Code zu sehen, aber im Allgemeinen Fehler wie diese auf ein anderes Ereignis zu brennen, feuern. Haben Sie ein Seitenladeereignis oder ein anderes auslösendes Ereignis, das den Status ändern könnte, wenn Sie das Postback für die Sortierung durchführen? – Harv

Antwort

0

Harv hatte Recht, danke für den Kommentar. Ich hatte tatsächlich einen Buggy-Code übrig, wo ich dies in RowDataBound (was nicht funktioniert, tue es nicht dort), was das Problem verursachte, übrig hatte. Ich dachte, ich hätte es gelöscht, aber ich denke nicht.

Danke, gute Intuition! (Post das als Antwort und ich werde es richtig markieren, wenn Sie wollen Harv)

Verwandte Themen