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" :
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
    {
    }
}
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
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>
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
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);
    }
Voilà, si quelqu'un avait la gentillesse de m'aider à me dépêtrer.