OVH Cloud OVH Cloud

Accéder à un label depuis un user control

6 réponses
Avatar
fabrice
Bonsoir

encore à moi ;-)

Est il possbile depuis un controle utilisateur d'accèder à une propriété
d'un Label se situant dans le fichier .aspx
Si je tente, il me déclare que le control n est pas déclaré.

merci
fabrice

6 réponses

Avatar
Guillaume Davion
Il faut que tu accede à l'objet page, et que tu le castes dans l'objet
page ou se trouve ton label.

Imaginons que ta page s'apelle Toto.aspx, et que ton label s'appelle
lblTest.

Dans ton control, tu vas appeler ton label en faisant
((Toto)Page).lblTest .

Ceci dit, pense à valider que ton contrôle est bien dans la bonne
page, pour que le cast ne rate pas.
Avatar
Guillaume Davion
Il faut que tu accede à l'objet page, et que tu le castes dans l'objet
page ou se trouve ton label.

Imaginons que ta page s'apelle Toto.aspx, et que ton label s'appelle
lblTest.

Dans ton control, tu vas appeler ton label en faisant
((Toto)Page).lblTest .

Ceci dit, pense à valider que ton contrôle est bien dans la bonne
page, pour que le cast ne rate pas.
Avatar
fabrice
Hello guillaume

Il doit y avoir quelque chose qui m'échappe.
J'ai tenté la manip mais j ai toujours une erreur.

en pratique, ma page se nomme default.aspx
le label situé sur cette page se nomme lbltest

((default.apsx)Page).lbltest.text
dans la pahe, <asp:Label id="lbltest" runat="server">test</asp:Label>


sur le usercontrol, page .ascx j'ai mis


Sub Page_Load(Source As Object, E As EventArgs)

((default)Page).lbltest.text="mon label"


et la plantage.


BC30035: Erreur de syntaxe.
((default.apsx)Page).lbltest.text


merci


"Guillaume Davion" a écrit dans le message de news:

Il faut que tu accede à l'objet page, et que tu le castes dans l'objet
page ou se trouve ton label.

Imaginons que ta page s'apelle Toto.aspx, et que ton label s'appelle
lblTest.

Dans ton control, tu vas appeler ton label en faisant
((Toto)Page).lblTest .

Ceci dit, pense à valider que ton contrôle est bien dans la bonne
page, pour que le cast ne rate pas.
Avatar
Guillaume Davion
Ah oui, en vb, ca marche moins bien avec cette syntaxe ;)

La syntaxe correspondante en vb est :

ctype(Page, default).lbltest.text
Avatar
Daniel TIZON
Je ne pense pas que ce soit une bonne idée de te répondre comment faire
celà, même si c'est possible...
Dans une conception bien faite, c'est la page qui est censée passer des
paramètres au UserControl, et non au UserControl à se servir tout seul en
violant toutes les règles d'encapsulation.

Le UserControl ne doit recevoir des données à partir de la page que par le
biais de propriétés ou méthodes publiques.
Le UserControl ne doit envoyer des données à la page hôte que par la levée
d'événements auquels la page peut s'abonner.

Maintenant, il faut voir dans ton cas, ce qui justfierait cet écart...

Maintenant, tu fais comme tu veux.
Daniel TIZON
Winwise
MCSD.NET/MCT



"fabrice" a écrit dans le message de news:
OV$S%
Bonsoir

encore à moi ;-)

Est il possbile depuis un controle utilisateur d'accèder à une propriété
d'un Label se situant dans le fichier .aspx
Si je tente, il me déclare que le control n est pas déclaré.

merci
fabrice



Avatar
Guillaume Davion
Je suis effectivement d'accord avec Daniel, j'ai eu le cas d'une page
que je devais reprendre où un user control bricolait sans prévenir
avec son environement, et ca n'etait pas franchement simple à
maintenir...