Problèm CheckBoxList

Résolu
The Red Man Messages postés 111 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 13 juin 2010 - 29 mai 2008 à 10:21
The Red Man Messages postés 111 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 13 juin 2010 - 29 mai 2008 à 16:35
Bonjour (eh oui c'est encore moi) !


Il y a un problème que je n'arrive pas résoudre avec un CheckBoxList.


Mon checkboxlist est peuplé grace à un objectdatasource, ce checkboxkist se trouve dans une view et donc dans une multiview.

Le problème est la suivante : lorsque je lance la page aspx, j'aperçoi tous les éléments, or lorsque j'essai de connaître le nombre par exemple ou de manipuler ces données, VS me dit qu'il y a aucun élément.

Avez-vous une solution ? :)

7 réponses

The Red Man Messages postés 111 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 13 juin 2010 2
29 mai 2008 à 13:37
J'ai trouvé la solution !


J'ai regardé comment ASP .NET fonctionne à propos des enchainement des évenements. Mon problème est dû au postback. Ce que j'ai fais c'est de tester le postback comme ceci  dans la méthode Page_Load:


protected void Page_Load(object sender, EvenArgs e)
{
   if (!IsPostBack)
  {
      this.DataBind(); // cette ligne permet de garder intact les éléménts d'une ddl ou cbl ou autre à chaque chargement d'une page.
  }
}

j'espere que j'ai pas des bêtises en expliquant.
yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014
29 mai 2008 à 12:30
Bonjour

essay de passer par FindControl.

CheckBoxList oList = (CheckBoxList)TonView.FindControl("L'ID de ton CheckBoxList")

Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
The Red Man Messages postés 111 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 13 juin 2010 2
29 mai 2008 à 13:03
j'ai déjà essayé avant de demander de l'aide ! Mais ça ne fonctionne pas.

J'ai plusieurs view et dans certaine de ces view j'ai des checkboxlist et le problème est identique pour tous les checkboxlist.

C'est bizarre.
GillouXman Messages postés 561 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 10 juin 2010
29 mai 2008 à 13:45
      this.DataBind(); // cette ligne permet de garder intact
les éléménts d'une ddl ou cbl ou autre à chaque chargement d'une page.

"garder intact" : en fait ca permet de ne pas rebind le contrôle une nouvelle fois et donc de ne pas perdre la valeur qui a été sélectionée.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014
29 mai 2008 à 16:13
Excusez moi de vous dire que this.DataBind() n'a rien à voir avec ce que vous avez expliquer le this.DataBind() permet tous simplement d'attacher les données aux contrôles de la page dans un sens qui peut être bidirectionnel, mais celui qui est résponsable de ne pas rebinder les contrôles à chaque fois c'est le  if (!IsPostBack) cette condition renvoi true si c'est le premier chargement de la page après les rendus des controles avec leurs données sont stocké dans le ViewState et c'est grâce à celle-ci que les controles sont gardés intact et la condition .if (!IsPostBack) renvoi false et elle saute le this.DataBind().

Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
GillouXman Messages postés 561 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 10 juin 2010
29 mai 2008 à 16:18
euh j'ai jamais dit ça ...

j'ai pas copié assez de code :D mais tkt je sais ce que IsPostBack veut dire ...
The Red Man Messages postés 111 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 13 juin 2010 2
29 mai 2008 à 16:35
Bah merci pour les explications ! ça devient de plus en plus clair dans ma tete ! merci à vous.
Rejoignez-nous