Proprité composant dans un datalist

Signaler
Messages postés
31
Date d'inscription
samedi 20 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2006
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour,
G un tit problème avec une datalist. Voici :
J'utilise la datalist de manière dynamique. C'est à dire que g créé différents ascx contenant le contenu du tag item template de ma datalist. En fonction de différents critères je charge l'asx correspondant.
Seulement voila, après ce chargement, je désire modifier la propriété "Visible" d'un label se trouvant dans ma datalist (le databind ayant été effectué. Je fais donc :
pour chaque item de ma data liste... si ***** alos ((Label)DataList.FindControl("MonLabel")).visible = false;

Ca me retourne tjs un null exception. Est-ce du au fait que la datalist se trouve ds un ascx et le template (chargé) dans un autre ? Pourtant, après le chargement, mon datalist ne contient-til pas le itemtemplate ?

Si quelqu'un a une idée... c assez urgent.
Merci d'avance.

Tof

3 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
tu fais ca quand ? dans le page_load ? dans le page_init ? lors d'un click sur un bouton ?

et ton Label se trouve dans l'ascx ou directement dans le datalist.

si c'etait possible j'aimerais un bout de code si c'etait possible, juste pour savoir comment tu initialise ton datalist, et tu ajoutes tes UC etc... dedans car je pige pas pourquoi tu fais pas tout simplement monlabel.visible = false

Cyril
Messages postés
31
Date d'inscription
samedi 20 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2006

Salut Cyril

Finalement g trouvé ce qui n'allait pas, une connerie. Le label est dans l'ascx, donc c ceci qu'il fallait entrer :
((Label)DataList.Items[i].controls[0].FindControl("MonLabel")).visible = false;
... ou un truc dans le genre.
Bref ca marche bien.
Merci pr ta réponse

Tof
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
ok

sinon une autre solution que je trouverais plus propre (explication plus bas) serait de rajouter une propriété public dans ton UC (ascx) style

public property isLabelVisible() as boolean
get
return label.visible
end get
set (value as boolean)
label.visible = false
end set
end property

c'est du VB ma lange maternel :)

et c'est plus propre car si tu entre qqchose d'incorrect dans le findcontrol ==> BUG

mais je suis pas sur que ca fonctionne

Cyril

Si la reponse est ok, oublie pas de cliquer sur reponse accepter :)