Accueil > Forum > > > > User Control dynamique (C#)
User Control dynamique (C#)
mardi 31 octobre 2006 à 09:49:56 |
User Control dynamique (C#)

ranouf
|
Bonjour,
Je cherche aussi à résoudre ce pb.
J'ai mon menu qui mene à la page => "?page=employe" ou
"?page=departement". Un coup je voudrai que ça m'affiche employe.ascx et de l'autre departement.ascx. Comment je fais pour implémenter dynamiquement le
user control ? J'ai compris comment faire pour l'insérer de manière fixe (simple on le drag and drop:)), il m'ajoute une balise register + le user control. Mais si par la suite je veux pourvoir jouter dynamiquement un nouveau menu exemple "?page=direction", je n'ai pas envie d'avoir a recompiler tout le code. Surtout que par la suite ce ne sera pas des développeur qui vont l'administrer !!
Si quelqu'un peut m'aider c'est avec plaisir :)
Merci
|
|
mardi 31 octobre 2006 à 10:30:02 |
Re : User Control dynamique (C#)

ranouf
|
Je vous explique un peu l'architecture :
Default.aspx --> left.ascx (menu de gauche) --> page.ascx (page centrale), ce fichier contient : protected void Page_Load(object sender, EventArgs e) { UserControl center = (UserControl)Page.LoadControl("~/include/pages/mon_compte/mon_compte.ascx"); Page.Controls.Add(center); }
et j'obtiens le message d'erreur suivant : "Impossible de modifier la collection de contrôles durant les phases DataBind, Init, Load, PreRender ou Unload."}"
Comment dois je m'y prendre pour qu'il me charge dynamiquement mon user control ?
|
|
mardi 31 octobre 2006 à 11:36:07 |
Re : User Control dynamique (C#)

ranouf
|
J'ai donc décidé de créer une méthode vu qu'on peut pa le faire dans le Page_Load public void LoadUserControl(String Uc) { UserControl center = (UserControl)Page.LoadControl("~/include/pages/mon_compte/mon_compte.ascx"); Page.Controls.Add(center); }
J'ai ajouté dans page.ascx le code suivant : <div id="centre" oninit="LoadUserControl"> test
</div>
Donc quand s'initialise mon div je devrai avoir l'ajout du User Control "mon_compe.ascx"
ce fichier contient le code suivant : <%@ Control Language="C#" AutoEventWireup="true" CodeFile="mon_compte.ascx.cs" Inherits="include_pages_mon_compte_mon_compte" %>
Mon compte > Mon profil !!!
Je devrai donc voir "Mon compte > Mon profil !!!" s'afficher quelque part ? Pourtant il ne s'affiche pas alors que j'ai pourtant chargé le User Control .... Ou alors j'ai tout faux, j'attends vos réponses :)
++
|
|
mardi 31 octobre 2006 à 12:18:36 |
Re : User Control dynamique (C#)

jesusonline
|
Réponse acceptée !
Bonjour, pour la fin oui t'as tout faux ;-) pour rajouter un controle dynamiquement il faut le mettre dans le page_init pour que tu puisses conserver les postback ... mais tu peux aussi rajotuer des controls dans le page_load sauf que dans ton cas tu essayais d'acceder au controle de la page et pas du userControl et ca il aime pas ! donc si tu veux rajouter ton controle dans la apge (aspx) fait le dans le code behind de la page sinon rajoute le dans l'event init de ton usercontrol. pour ce qui est de ton dernier message, un <div n'a pas d'evenement oninit, ... mais surtout ton code la s'executerais coté client en javascript s'il existait un evenement oninit ... Cyril - MVS - MCP
|
|
mardi 31 octobre 2006 à 14:42:22 |
Re : User Control dynamique (C#)

ranouf
|
Réponse acceptée !
Merci pour ton aide, j'ai maintenant avancé mais j'ai toujours des problèmes: [page.ascx.cs] public partial class include_menu_page : System.Web.UI.UserControl { private String _page;
public String page { get { return _page; } set { if (value != null && value != "") { _page = value; } else { _page = "~/include/pages/mon_compte/mon_compte.ascx"; } } }
protected void Page_Init(object sender, EventArgs e) { UserControl page = (UserControl)LoadControl(_page); panel.Controls.Add(page); }
}
J'ai mis un breack point au niveau du set, pour voir a quel moment j'y passais.
ensuite dans : [Default.aspx]
<%@ Register Src="include/menu/page.ascx" TagName="page" TagPrefix="uc2" %> <uc2:page ID="uc2" runat="server" page="~/include/pages/mon_compte/mon_compte.ascx"></uc2:page>
J'imagine que page="~/include/pages/mon_compte/mon_compte.ascx" ça correspond à passer par la fonction set, et pourtant je ne passe pas par mon breack point ..... Et donc quand je le lance ça plante car _page est null !!
Une idée ?
|
|
mardi 31 octobre 2006 à 14:47:17 |
Re : User Control dynamique (C#)

ranouf
|
Réponse acceptée !
j'ai changé " public String page" en " public String include" et ça marche .... (bien entendu du j'ai aussi modifié Defautl.aspx) c cool !
|
|
mardi 31 octobre 2006 à 16:10:52 |
Re : User Control dynamique (C#)

jesusonline
|
Interressant comme problème :-) en fait tous les Control possedent une propriété Page avec un p majuscule (qui est bien sur en lecture seul) lors du parsing de la page pour la compilation il ne tient pas compte de la casse de la propriété donc il se melange les pinceaux entre page et Page, c'est donc pour ca que la propriété n'etait jamais setté. Cyril - MVS - MCP
|
|
Cette discussion est classée dans : menu, dynamique, page, control, user
Répondre à ce message
Sujets en rapport avec ce message
RegisterClientScriptBlock dans un un User Control [ par dai2 ]
Bonjour tous le monde,Je souhaiterais utiliser page.RegisterClientScriptBlock pour générerun script de menu dans ma page asp.net.Losrque j'utilise cet
evenement + user control + code behind = ???? [ par jesusonline ]
bonjour j'ai une page default.aspx et dans cette page j'appelle un user control (ascx) dans cet user control j'ai un bouton et j'aimerais bien que qd
Web user control dynamique [ par systemic_anomaly ]
Bonjour à tous.Je débarque dans l'asp.net et j'ai fais un web user control qui me sert de menu vers des pages différentes. J'aimerais pouvoir ajouter
Menu dynamique et frameset [ par Appolon ]
Bonjour à tous,Mon problème est le suivant, j'ai un menu dynamique horizontal il se trouve dans une page asp entete qui elle est appellé dans une page
User Control [ par Kalypswoo ]
J'ai un user control en haut de ma page. Lorsque je met un datagrid ou autre chose dans ma page, lorsque que je lance l'appli dans ie, les éléments de
Variable session et user control [ par StephaneNet ]
Bonjour à tous,J'ai un petit soucis et peut etre pourrez vous m'aider. J'ai un user control sur la page company.asp avec un lien vers ma page d'accu
User Control et WebForms [ par scortex84 ]
Bonjour,J'ai un gros soucis (d'où mon message)...Je développe avec Visual Studio 2003, Framework 1.1.J'ai crée un Windows Form User Control en C# (peu
Accéder aux propriétés d'un master page dans un user control [ par vince233 ]
Bonjour,J'ai actuellement un masterPage : MasterPage.master et une page : Default.aspxDans le masterpage, j'ai un attribut public Master.Button1_Click
Chargement dynamique WebUserControl [ par manu_sharp ]
Bonjour,Je debute en ajax asp net et je souhaite réalise une page web avec à l'interieur, des WebUserControl imbriqués (conteneur, contenant ...)Ex :M
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|