2017-01-26 3 views
0

itemDataboundの間にlistviewの前の項目にアクセスしようとしましたが、何も返しません。実際、lvListview.items.countは0を表示しています。記録ははっきりとしていますが。itemtataboundの前のListViewDataItemにアクセス

ありがとうございました。 :) lvReleaseNotesReport.Itemsマウスオーバー、コードをステップ実行しながら...

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 

、同様にこれを試し

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 

が正しいレコード数を示しているが、すべてのdataitemsは=何もありません。

答えて

0

とにかく、私はそれを理解しました。 DataKeyNamesおよびDataKeysインデックス。

<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 
関連する問題