2017-01-26 3 views
0

Der Versuch, während itemDatabound auf das vorherige Element in der Listenansicht zuzugreifen, es wird jedoch nichts zurückgegeben. In der Tat zeigt lvListview.items.count 0; obwohl die Aufzeichnungen eindeutig da sind.Zugriff auf das vorherige ListViewDataItem in itemdatabound

Danke natürlich für jede Hilfe. :)

Protected Sub lvReleaseNotesReport_ItemDataBound(sender As Object, e As ListViewItemEventArgs) Handles lvReleaseNotesReport.ItemDataBound 

    If e.Item.ItemType = ListViewItemType.DataItem Then 

     Dim relNote As ReleaseNotesDTO = DirectCast(e.Item.DataItem, ReleaseNotesDTO) 
     If e.Item.DataItemIndex > 0 Then 
      Dim prevNote As ReleaseNotesDTO = DirectCast(lvReleaseNotesReport.Items(e.Item.DataItemIndex - 1).DataItem, ReleaseNotesDTO) 
      'prevNote keeps coming up as Nothing 
     End If 

     'do other stuff with relNote and prevNote... 

    End If 

End Sub 

dies auch versucht, ...

Protected Sub lvReleaseNotesReport_PreRender(sender As Object, e As EventArgs) Handles lvReleaseNotesReport.PreRender 

    For Each item As ListViewItem In lvReleaseNotesReport.Items 

     If item.ItemType = ListViewItemType.DataItem Then 

      If item.DataItemIndex > 0 Then 

       Dim thisNote As ReleaseNotesDTO = DirectCast(item.DataItem, ReleaseNotesDTO) 
       Dim prevItem As ListViewDataItem = lvReleaseNotesReport.Items(item.DataItemIndex - 1) 
       Dim prevNote As ReleaseNotesDTO = DirectCast(prevItem.DataItem, ReleaseNotesDTO) 

       'do other stuff with relNote and prevNote... 

      End If 

     End If 

    Next 

End Sub 

Während durch den Code, zeigt mousing über lvReleaseNotesReport.Items die richtige Anzahl der Datensätze, aber alle sind = dataitems nichts.

Antwort

0

Danke trotzdem, ich habe es herausgefunden. DataKeyNames und DataKeys-Index.

<asp:ListView ID="lvReleaseNotesReport" runat="server" DataKeyNames="Build" GroupItemCount="1"> 

    Dim keyIndex As Int32 = 0 
    For Each item As ListViewDataItem In lvReleaseNotesReport.Items 

     If item.DataItemIndex > 0 Then 

      Dim thisBuildID As String = lvReleaseNotesReport.DataKeys(keyIndex)("Build").ToString() 
      Dim prevBuildID As String = lvReleaseNotesReport.DataKeys(keyIndex - 1)("Build").ToString() 
      If thisBuildID = prevBuildID Then 

       'DO STUFF 

     End If 
     keyIndex += 1 

    Next 
Verwandte Themen