Bein... en quoi tu as besoin de faire communiquer la master page avec la page de contenu ? Tu modifies ta culture, un pti redirect et basta !Envoyé par stephane.net
(J'ai loupé un truc ?)
Bein... en quoi tu as besoin de faire communiquer la master page avec la page de contenu ? Tu modifies ta culture, un pti redirect et basta !Envoyé par stephane.net
(J'ai loupé un truc ?)
La relation entre un contrôle et ses sous-contrôle est évidente. C'est effectivement la seule méthode de travail propre.Envoyé par stephane eyskens
Ce qui faisait tiquer c'est la création d'une dépendance entre un page et sa master page.
Cette comparaison n'est pas de moi, mais du gars qui a écrit l'article en référence au début de ce post ("Master Page To Content Page Interaction").Envoyé par stephane eyskens
Maintenant, méfiez vous de la maintenabilité.
Pour moi, une masterpage est un genre de template.
Ca veut dire que si on change de master page, l'appli (web) doit toujours fonctionner. Faire une dépendance, c'est augmenter la complexité de l'application donc diminuer sa souplesse (c'est à dire augmenter la prise de tête le jour où tu dois faire une modif).
Après, vous faites comme vous voulez, je ne donnais qu'un petit conseil architectural.
Tu as tout à fait raison sur ce pointEnvoyé par Mose
. Ceci dit, en utilisant une masterpage, tu induis automatiquement une dépendance entre la masterpage et les pages qui l'utilisent. Chaque "sous page" référence un parent contentplaceholder. Si un jour pour une raison x-y tu dois virer un content place holder de ta masterpage, t'es parti pour virer la référence de toutes les sous pages qui l'utilisait. En ajoutant un Event comme cela a été fait pour ce post, tu ne fais qu'accroître la dépendance existante et tu lui fais changer de nature car ce n'est plus qu'une dépendance d'affichage mais ça devient une dépendance de logique.
Envoyé par Mose
non non .... j'aurais mieux fais de me taire... (merci)
Bonjour bonjour,
Cela fait pas mal de temps que je sèche sur un problème, et j'ai enfin trouvé le bon sujet. Mais voilà, je suis confronté au même problème que l'auteur de ce message :
je désire générer un évènement personnalisé à partir de ma masterpage. Le hic, c'est que je n'arrive pas, dans mes pages filles, à intercepter cet évènement car la compilation m'indique que " 'System.Web.UI.MasterPage' ne contient pas de définition pour 'PublicEvent' ". Y a-t-il une manipulation spéciale à réaliser afin de pouvoir accéder aux éléments spécifiés en PUBLIC d'une page maitre ?
J'arrive par contre à capter des évènements générés par exemple par des boutons de la MasterPage, en faisant
((LinkButton)Master.FindControl("IdBouton")).Click += new EventHandler(Fonction);
mais pour les évènements "homeMade", rien n'y fait !
merci de votre aide.
Suis-je un peu C.. ? je n'avais pas vu que ce forum contenait 2 pages
sorry pour ce message polluant![]()
Bonjour ! Je sais que ce message date et je prie que Stéphane reçoive un mail de notification sur le post
Car son post m'a grandement aidé !j'ai à peu près compris pour une fois comment faire des évènements !
Le problème, c'est que pour ma part, je souhaite faire remonter une information de la page fille à la page mère !
Par exemple, un évènement qui correspond à l'état de l'application web : la page fille est-elle en train de charger ou pas ? Si oui, la page maitre active un composant activity qui rend l'appli légèrement transparente pour indiquer à l'utilisateur que la page travaille.
Voici ce que j'ai pour l'instant (j'utilise silverlight et c#)
Dans le fichier app.xaml.cs j'ai ceci :
Dans ma page fille, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class IfisWorkingEventArgs : EventArgs { private bool _working; //Constructeur public IfisWorkingEventArgs(bool Bool) { _working = Bool; } //Ascesseur public bool Working { get { return _working; } set { _working = value; } } public delegate void IfisWorkingEventHandler(object sender, IfisWorkingEventArgs e); }
Et dans ma page fille, j'appelle setWork(true) quand j'utilise des fonctions, charge des élém de la bdd etc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public event IfisWorkingEventArgs.IfisWorkingEventHandler PublicWorkEvent = null; public void setStateWork(object sender, IfisWorkingEventArgs e) { //lookactivity est le composant dont j'ai parlé lookActivity.IsActive = e.Working; } public void setWork(bool value) { if ( PublicWorkEvent != null ) { EventArgs args = new IfisWorkingEventArgs(value); PublicWorkEvent(this , (IfisWorkingEventArgs)args); } }
Mais ceci fonctionne avec le composant lookactivity dans la page fille. Comment faire s'il se trouve dans la page maitre ?
Donc comment faire l'inverse de ce que tu a écris, enfin dans le chemin inverse, fille -> mère
Merci de tout éclaircissement![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager