Question

Can someone please tell me what I'm doing wrong....

I am trying to populate an ObjectListView control by looping through a dataset (I don't want to bind it to my dataset). The first row populates but nothing after that.

My code looks like so:

If dsOverdueCalls.Tables.Count > 0 And dsOverdueCalls.Tables(0).Rows.Count > 0 Then
     For x = 0 To (dsOverdueCalls.Tables(0).Rows.Count - 1)
          'Calculate overdue amount
          .....

          Dim lstCalls = New List(Of [Call_Details])() From {New [Call_Details]() With {.Id = tempDT.Rows(x)("id").ToString, .Summary = tempDT.Rows(x)("summary").ToString, .First_Name = tempDT.Rows(x)("first_name").ToString, .Due_At = OverdueStr}}
          lsvOverdueCalls.SetObjects(lstCalls)
     Next
End If

I get no errors but only the first record will populate in my control. Thanks

Était-ce utile?

La solution

You're resetting the ObjectListView in each iteration. So, what you believe is the "first" row is actually the last row. The following code will fix your issue.

If ((dsOverdueCalls.Tables.Count > 0) AndAlso (dsOverdueCalls.Tables(0).Rows.Count > 0)) Then
    Dim lstCalls = New List(Of [Call_Details])
    For x As Integer = 0 To (dsOverdueCalls.Tables(0).Rows.Count - 1)
        lstCalls.Add(New [Call_Details]() With {.Id = tempDT.Rows(x)("id").ToString, .Summary = tempDT.Rows(x)("summary").ToString, .First_Name = tempDT.Rows(x)("first_name").ToString, .Due_At = OverdueStr})
    Next
    lsvOverdueCalls.SetObjects(lstCalls)
End If
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top