List views in VB.NET

Afternoon,

I'm trying to change the row colour in a list view when the items become older than 30 days.  Well that may change i can play wiht that later but initially i though it would be simple, but the colour doesn't change.  Can anyone see what's wrong with my code?
LVReturns.Items.Clear()
        For Each ReturnItem In DS.Returns.Rows
            Dim LI As New ListViewItem
            Dim TimeSpan As TimeSpan
            Dim Age As Integer = 0
            TimeSpan = Now.Subtract(ReturnItem.SendDate)
            Age = TimeSpan.Days
            If Age > 30 Then
                LI.ForeColor = Color.Red
                LI.UseItemStyleForSubItems = True
            End If
            LI.Text = Convert.ToString(ReturnItem.ref)
            LI.SubItems.Add(ReturnItem.Name)
            LI.SubItems.Add(ReturnItem.SendDate)
            LI.SubItems.Add(Age)
            LI.SubItems.Add(ReturnItem.Item)
            LVReturns.Items.Add(LI)
        Next

Open in new window

nick210577Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
abelConnect With a Mentor Commented:
Is this a ListView in ASP.NET or in WinForms? Seems to be the latter, as the UseItemStyleForSubItems  is not available on an ASP.NET listitem.

Are you sure your if-statement is ever hit? You can test by just changing only the very first list item and see if that works.


0
 
abelConnect With a Mentor Commented:
In other words, suppose you do this, is then everything green?

LVReturns.Items.Clear()
        For Each ReturnItem In DS.Returns.Rows
            Dim LI As New ListViewItem
            Dim TimeSpan As TimeSpan
            Dim Age As Integer = 0
            TimeSpan = Now.Subtract(ReturnItem.SendDate)
            Age = TimeSpan.Days
            If Age > 30 Then
                LI.ForeColor = Color.Red
                LI.UseItemStyleForSubItems = True
            Else
                LI.ForeColor = Color.Green
                LI.UseItemStyleForSubItems = True
            End If
            LI.Text = Convert.ToString(ReturnItem.ref)
            LI.SubItems.Add(ReturnItem.Name)
            LI.SubItems.Add(ReturnItem.SendDate)
            LI.SubItems.Add(Age)
            LI.SubItems.Add(ReturnItem.Item)
            LVReturns.Items.Add(LI)
        Next

Open in new window

0
 
nick210577Author Commented:
Thanks guys...

Embarrassingly i have a couple of LV's on this page and i'd added the code to the wrong one, and none of the lines met that criteria.  Adding the else/ forecolor green highlighted my mistake.  Thanks guys.
0
 
abelCommented:
(from grading comment)
> Thanks guys...
You're welcome, I (abel) was only one person ;-)

> Embarrassingly i have a couple of LV's on this page and i'd added the code to the wrong > one, and none of the lines met that criteria. Adding the else/ forecolor green highlighted my mistake.

don't let your own mistakes (we all make them, don't feel embarrassed, that's what this site is for, have an extra pair of eyes) cloud your judgment in grading. Please review the 10pts must principle of EE for why this is.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.