Balise <form> [Résolu]

Signaler
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
-
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
-
J'ai un UserControl qui contient un TreeView.

Quand je l'inclu dans la page "en dur", pas de problemes.
Mais quand je veux le charger dynamiquement avec LoadControl, une erreur apparait me disant qu'il faut que le TreeView soit entre des balise <form> avec runat="server".

Quand je rajoute la balise <form> dans l'ascx, j'ai une autre erreur me disant qu'une page ne peut pas contenir plus d'une balise <form> avec runat="server"

Comment faire ?

D@runia

4 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour,

il faut que tu rajoutes ton treeview dans la balise form de ta page ! le plus simple est dans la balise form de ta page tu met un placeolder et ensuite tu met ton treeview dedans

<hr />Cyril - MVS - MCP
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
1
Merci, ça fonctionne !
Je n'ai cependant pas compris pourquoi ... La MSDN dit qu'un PlaceHolder sert à contenir des controles dynamiques, mais ne précise pas pourquoi il est indispensable.

D@runia
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Le problème est qu'en faisant un page.controls.add tu vas rajoutes ton controle dans la page et non dans la balise <form id="runat="server"
or un controle treeview a besoin d'etre dans une balise form car il fait des postback, c'est pour cette raison qu'il t'indique une erreur quand t'essayes de la mettre dans la page directement.

tu aurais aussi pu écrire form1.controls.add pour le rajouter dans la form ca aurait fait la meme chose, mais tu n'as pas un controle trés précis d'ou il va se positionner c'est pour cela que je t'ai conseillé de rajouter un placeholder comme ca tu peux le mettre ou tu veux dans ton code à l'intérieur de ta balise form :-)

<hr />Cyril - MVS - MCP
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
1
Ah OK, je vois plus clair à présent !
Merci beaucoup pour ton aide !

D@runia