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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 !!!)
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager