Salut,
J'ai un controle dérivé de liste déroulante.
J'assigne le nombre d'items par l'intermédiaire d'une propriété.
Je ne sais pas si je le fais proprement. Voici le code:Il s'agit d'une liste déroulante ne contenant que des samedi. La propriété "nbWeeksForward" conditionne le nombre de samedis de la liste.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Globalization; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MonNameSpace { [DefaultProperty("Text")] [ToolboxData("<{0}:ListOfSaturdays runat=server></{0}:ListOfSaturdays>")] public class ListOfSaturdays : DropDownList { public ListOfSaturdays() { } public ListOfSaturdays(int nbWeeks) { this.nbWeeksForward = nbWeeks; } private int _nbWeeksForward; public int nbWeeksForward { get { return _nbWeeksForward; } set { _nbWeeksForward = value; } } protected override void OnInit(EventArgs e) { base.OnInit(e); SetSaturdayListDate(); } private void SetSaturdayListDate() { DateTime today = DateTime.Today; while (today.DayOfWeek != DayOfWeek.Saturday) today = today.AddDays(1); this.Items.Add(new ListItem( string.Format(DateTimeFormatInfo.CurrentInfo, today.ToShortDateString()), today.ToString(DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern))); for (int i = 0; i < nbWeeksForward; i++) { today = today.AddDays(7); this.Items.Add(new ListItem( string.Format(DateTimeFormatInfo.CurrentInfo, today.ToShortDateString()), today.ToString(DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern))); } } } }
Quand je mets une valeur à l'attribu du controle dans la page ASPX pas de soucis. Cependant, quand je souhaite le faire en code behind, je suis obligé de passer cette valeur à la déclaration, sinon, cela n'a pas d'effet. Je veux dire si le controle est ajouté dans la page ASPX et que je souhaite affecter la valeur en code-behind.
A quel moment de la génération de la page/du controle dois-je faire cette assignation? Quel est le moment le plus propice?
A+
Partager