Bonjour,
Voil� je me suis pris au jeu de cr�er mes propres UserControls, et �a semble bien pratique.
Mais!... Je n'arrive pas � les cr�er dynamiquement dans le code behind de ma page web de mani�re � pouvoir les configurer par le biais de leurs propri�t�s publiques. Il semble que ce soit un propre de r�f�rence de classe/espace de nom/assembly, et j'avoue �tre un peu perdu dans tout �a.
Mes quatre contr�les utilisateurs (fichiers .ascx) sont dans un r�pertoire "MesControles". J'ai encadr� leurs classes partielles dans le code behind d'un espace de nom commun "MesControles" :
Dans web.config j'ai ajout� ces r�f�rences :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 namespace MesControles { public partial class InfosConcert : System.Web.UI.UserControl { } }
Du coup je peux cr�er sans probl�me ces contr�les en mode design, mais pas en mode runtime. J'aurais besoin de pouvoir faire �a :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 <system.web> <customErrors mode="Off"/> <pages> <controls> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/> <add tagPrefix="UC" tagName="InfosConcert" src="~/MesControles/InfosConcert.ascx"/> <add tagPrefix="UC" tagName="InfosSupport" src="~/MesControles/InfosSupport.ascx"/> <add tagPrefix="UC" tagName="InfosPiste" src="~/MesControles/InfosPiste.ascx"/> <add tagPrefix="UC" tagName="InfosInter" src="~/MesControles/InfosInter.ascx"/> </controls> </pages>
Voil�, si quelqu'un avait la gentillesse de m'aider � me d�p�trer.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 protected void ListBoxResultat_SelectedIndexChanged(object sender, EventArgs e) { InfosConcert infosConcert = new InfosConcert(); infosConcert.DateCreation = "12/12/2008"; ((PlaceHolder)infosConcert.Support).Controls.Add(new TextBox()); PlaceHolderResultat.Controls.Add(infosConcert); }
Partager