[C#] Acceder a un contrôle depuis page (sur master page)

Signaler
Messages postés
23
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
18 juin 2007
-
lilippx
Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007
-
Bonsoir,

Je voudrais savoir comment peut-on, en C#, accéder à un controle (sur ma MasterPage HTML, il porte l'id MyTitle) depuis la Page en cours de traitement.

Merci.

12 réponses

Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007

salut, pour faire ca tu peux faire :
Master.FindControl("MyTitle")
voila
Messages postés
23
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
18 juin 2007

Merci pour ta réponse.

Voici ce que j'ai tenté : Master.FindControl("MyTitle").InnerText = "Bienvenue";

Seulement, il me dit que InnerText n'existe pas dans ce contexte ???

'System.Web.UI.Control' does not contain a definition for 'InnerText'

Merci pour votre aide.
Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007

il faut parser :
(typeDuControl)Master.FindControl("MyTitle").InnerText = "Bienvenue";

typeDuControl peut etre label, textBox........ selon le type du control que tu veux récupérer.
Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007

pardon, le terme c'est caster, pas parser
Messages postés
23
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
18 juin 2007

Alors justement.

Dans mon code source côté code HTML j'ai mis :

<title id="MyTitle" runat="server"></title>

Donc autant dire que je ne sait vraiment pas quoi faire pour caster là.

Le but est que chaque page puisse changer le <title> sans faire un runat="server" sur tout le <head> pour garder un code propre.
Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007

dans ce ca, pourquoi tu ne fais pas this.Page.Title="tonTitre";
car en plus tun ne peux pas mettre de runat="server" hors des balise <form>
Messages postés
23
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
18 juin 2007

Oui c'est ce que je vais finir par faire, mais il me fout en l'air toute la présentation du code que j'avais fais dans le <head>.

Maintenant c'est illisible :(

Domage.
Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007

chez moi ca génere :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
monTitre
</title></head>

je ne vois pas ce qui est illisible?
Messages postés
23
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
18 juin 2007

Toutes les balises meta et link sont mises à la suite sans espace.
Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007

ca, ce n'est pas grave du tout, ca reste propre et strict, elles auront exactement le même effet, je te concede que certain control asp.net genere un xhtml impropre, mais la, pour le coup ce n'est pas le cas.
Fais un test ici voir si tout est ok : http://validator.w3.org/
Messages postés
23
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
18 juin 2007

Oui certes je sais que ce n’est pas très
grave. Mais en phase de développement, c'est plus agréable d'avoir devant soit
un code bien concaténé, et m'adressant aussi à d'autres développeurs, le code
ici parait assez mauvais, du moins on a pas envie de s'y attarder.



Merci tout de même d'avoir pris le temps de me répondre, je vais faire avec ça pour l'instant.
Messages postés
149
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2007

ok, bon courage pour la suite du developpement, si tu trouves une solution plus propre, n'hésites pas à la poster ici, ca pourras interaisser du monde, moi le premier.
à plus