Souci sur un test IF à trois pattes
Bonjour à tous.
J'ai un petit souci de compréhension sur un test conditionnel avec trois possibilité. J'ai d'abord tenté avec un Select Case, histoire de faire propre.
Voici là code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Protected Sub calTest_DayRenderUnique(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs)
Dim cal As Calendar = sender
With e
With .Day
.IsSelectable = False
End With
Dim dtDate As DataTable = New DManager("DataDev").RetournerTable("EXEC dbo.REZA_OccupationChambreUnique " & cal.Parent.ID)
For Each dr As DataRow In dtDate.Rows
With .Cell
.Height = Unit.Pixel(60)
Select Case e.Day.Date
Case Is < Now()
.BackColor = Drawing.Color.Gray
Case Is = dr.Item("DateReza")
.BackColor = Drawing.Color.Red
Case Else
.BackColor = Drawing.Color.Green
End Select
End With
Next
End With
End Sub |
Alors en gros : on est dans un contrôle Calendar et on va remplir les jour avec une couleur de fond selon la remontée de la base de donnée.
La dataTable contient un seul champ avec une date dedans.
Si la date du jour est passée, le jour doit êre gris dans le Calendar.
Si la date du jour est dans la base, le jour doit être Rouge.
Sinon (donc tou le reste) le jour doit être Vert.
Et là, avec ce code, je n'ai qu'un jour qui est rouge, le dernier de la liste (dans la DataTable).
Du coup, j'ai tenté avec un if et un un ElseIf (que je ne maitrise toujours pas trés bien à mon âge !!!)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
Protected Sub calTest_DayRenderUnique(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs)
Dim cal As Calendar = sender
With e
With .Day
.IsSelectable = False
End With
Dim dtDate As DataTable = New DManager("DataDev").RetournerTable("EXEC dbo.REZA_OccupationChambreUnique " & cal.Parent.ID)
For Each dr As DataRow In dtDate.Rows
With .Cell
.Height = Unit.Pixel(60)
If dr.Item("DateReza") = e.Day.Date Then
.BackColor = Drawing.Color.Red
ElseIf e.Day.Date < Now() Then
.BackColor = Drawing.Color.Gray
Else
.BackColor = Drawing.Color.Green
End If
End With
Next
End With
End Sub |
Et bizarrement j'ai le même résultat. Si je reste sur un test simple, avec du Rouge et du Vert, j'ai bien toutes mes dates qui s'affichent (sauf que j'ai pas de jour gris.
Vous pourriez m'aider ?
PS : tomlev, je n'ai as encore implémenté ton idée mais là, je suis sur un autre type de calendar, alors du coup, je ne sais pas si ton idée peut marcher aussi.