Bonjour,

Contexte: Je voudrais faire un template dans lequel je voudrais charger plusieurs contrôles de manière automatique. Pour cela j'utilise deux fichiers :

- test.aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Web.UI" %>
<script language="C#" runat="server">
UserControl C = null;
protected void Page_Load(object sender, EventArgs e)
{
       C = (UserControl)LoadControl("CtrlTest.ascx");
	//((COpes)C).test = "mon test est OK";
	CtrlC.Controls.Add(C);
</script>
<div id="CtrlC" runat="server"></div>
- CtrlTest.ascx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<%@ Control ClassName="COpes" %>
<script language="C#" runat="server">
public string test = "AFFICHE SANS PARAM";
</script>
<H1><%=test%></H1>
Requis:
Créer des contrôles à la volée sans passer par une directive.

Fonctionnel:
Le contrôle s'affiche quand je ne remplis pas les propriétés.

Erreur:
Lorsque j'essaie de mettre à jour la propriété de mon contrôle cela ne fonctionne plus. J'obtiens ce message d'erreur :
CS0246: The type or namespace name 'COpes' could not be found (are you missing a using directive or an assembly reference?)
Cela marche uniquement si on ajoute cette instruction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<%@ Reference Control="CtrlTest.ascx" %>
Je ne sais pas comment faire le cast pour qu'il reconnaisse mon contrôle et me permette d'accéder aux propriétés du contrôle.

Merci,
Choupi.