Bonjour,
j'ai un repeater dans lequel se trouve une CheckBoxList (ckbSpecialities) qui, comme son nom l'indique, contient des spécialités...
Dans le Page_Load de ma page, je lis les spécialités d'un individu. Le but est de ne cocher dans ma CheckBoxList que les spécialités de l'individu parmi toutes celles affichées dans ma CheckBoxList.
Le problème, c'est qu'après avoir bien coché toutes mes spécialités dans mon Checkbox (via une boucle et la commande listItem.Selected = true), dans ma page finale, aucun item n'est sélectionné... lors du débuggage, je constate que mes listItem qui doivent être cochés sont bel et bien modifiés, leur attrribut Selected = true, par contre, plus tard, tous les items de ma CheckBoxList sont comme réinitialisés...
Voici le déroulement observé grâce au débugger:
1)Page_Load
RepeaterFunctions.DataBind(); (J'appelle la construction de mon repeater)
2)RepeaterFunctions_ItemCreated
ckbSpecialities.DataBind(); (J'appelle la construction de ma fameuse CheckBoxList, je la remplis de toutes les spécialités possibles)
3)ckbSpecialities_DataBinding
4)ckbSpecialities_DataBound
5)retour dans RepeaterFunctions_ItemCreated()
C'est ici que je boucle et que je sélectionne les items qui doivent l'être:
à ce stade, je vois clairement que les bons items sont bien sélectionnés: leur valeur Selected est à true...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 foreach (ListItem listItem in ckbSpecialities.Items) { if (listItem.Value == speciality.SpecialityCode) { listItem.Selected = true; } }
Ensuite, c'est là que ça se gâte: d'autres fonctions sont exécutées:
6)ckbSpecialities_Init
7)ckbSpecialities_DataBinding
Ici, mes items ont encore les valeurs que j'attend
8)ckbSpecialities_DataBound
Ici, dans le débugger, je constate que mes items sont resettés...
9)retour dans RepeaterFunctions_ItemCreated()
10)retour dans Page_Load()
Je ne sais pas pourquoi La fonction ckbSpecialities_Init et les autres sont appellées mais de toute évidence, quelque chose dans le cycle de ma page ne tourne pas rond!
Un immense merci d'avance pour vos réponses ;-)
Partager