2009-07-10 4 views
0

정렬과 같은 작업을 수행 한 후에 선택한 선택한 항목 (데이터 키)을 선택한 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 

왜 여러 항목을 선택합니까? ProductID가 모든 제품에 고유하다는 것을 알고 있습니다. 감사!

+0

이 코드는 모든 코드를 보지 않고 대답하기는 어렵지만 일반적으로 이와 같은 오류가 발생하면 다른 이벤트가 실행됩니다. 정렬을 위해 다시 게시 할 때 상태를 변경하는 페이지로드 이벤트 또는 실행중인 다른 이벤트가 있습니까? – Harv

답변

0

Harv가 맞았습니다. 의견을 보내 주셔서 감사합니다. 사실, 문제를 일으키는 RowDataBound (작동하지 않는, 거기에서 처리하지 않음)에서이 작업을 수행하려고했던 버그가있는 코드가있었습니다. 나는 내가 그것을 삭제했다라고 생각했다. 그러나 나는 추측한다.

감사합니다. 좋은 직감! (답변으로 게시하고 Harv를 원한다면 바로 표시해 드리겠습니다.)