Ajout d'un usercontrol à partir du code behind [Résolu]

gatita_dev 135 Messages postés vendredi 27 mai 2005Date d'inscription 5 février 2008 Dernière intervention - 8 déc. 2006 à 11:07 - Dernière réponse : gatita_dev 135 Messages postés vendredi 27 mai 2005Date d'inscription 5 février 2008 Dernière intervention
- 11 déc. 2006 à 11:51
Bonjour
comme le dit le titre je veux pouvoir ajouter un control utilisateur dans une page aspx à partir du code behind
j'ai fait ce code pour affecter une page à un

'**********************************************
Dim writer AsNew StringWriter
Server.Execute("test.aspx", writer)
Response.Write
" & writer.ToString & "
")
'**********************************************

et je veux faire de même avec mon control mais je sais pas comment procéder
Merci pour votre aide
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 9 déc. 2006 à 10:21
3
Merci
Bonjour,
marche aussi :
dim monControl as MonUserControl=LoadControl("MonCheminRelatif/MonUserControl.ascx")
puis chargement dans un panel ou placeholder
là, on peut, il me semble, le mettre où on veut(à vérifier !)
@+G

Merci SuperBouly 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de SuperBouly
cs_Nurgle 1648 Messages postés samedi 6 novembre 2004Date d'inscription 28 avril 2011 Dernière intervention - 8 déc. 2006 à 20:04
0
Merci
Salut,

1)  arg, tu fais de l'ASP.NET là !! pas de l'ASP3 :p ! Donc l'utilisation  de Response.Write est à proscrire absolument !
Pour écrire du texte (HTML ou non) dans ta page, utilise le control Label (qui va afficher le contenu dans un ) ou le control Literal (qui lui va renvoyé directement le contenu de sa propriété .Text).

2) Toujours pareil, en ASP.NET, le Server.Execute() de l'ASP ne doit absolument pas être utilisé (surtout pas pour une page aspx, et non plus pour un control utilisateur d'ailleurs)
Utilises des UserControls, ".ascx" avec une clause register

Si tu veux ajouter dynamiquement un UserControl, rajoute dans ta page un PlaceHolder, et ajoute dynamiquement le controle dedans :

Dim monControl As New MonUserControl()
MonPlaceHolder.Controls.Add(monControl)

3) Attention : tous ces ajouts de contrôles doivent être fait dans le Page_Init, et n'oublie pas d'ajouter en haut de ta page .aspx ou tu utilises ton UserControl une directive Register.

Je te conseille quand même de réviser les bases d'ASP.NET : ça a l'air pareil qu'ASP (ou php, ou autres langages web interprétés), mais il y a certaines choses obsolètes à éviter...

A++

<hr width="100%" size="2" />Nurgle(Antoine) - MSP
Commenter la réponse de cs_Nurgle
cs_Nurgle 1648 Messages postés samedi 6 novembre 2004Date d'inscription 28 avril 2011 Dernière intervention - 9 déc. 2006 à 13:07
0
Merci
Arf, effectivement SuperBouly, mon extrait de code est pour les CustomControls, pas pour les UserControls... (je critique, et c'est moi qui fait une magnifique erreur assez bête...lol)
Donc, gatita_dev, utilises plutôt, pour charger un UserControl, ce que vient de te donner SuperBouly

A++

<hr width="100%" size="2" />Nurgle(Antoine) - MSP
Commenter la réponse de cs_Nurgle
gatita_dev 135 Messages postés vendredi 27 mai 2005Date d'inscription 5 février 2008 Dernière intervention - 11 déc. 2006 à 10:19
0
Merci
oui en effet c'est ce que j'ai fait mais j'arrive pas à placer le placeholder dynamiquement là ou je veux, j'ai placé mes div en utilisant une feuille de style et le htmlgenericcontrol mais j'arrive pas à placé le place holder dans une div, il s'affiche en bas des div.
Est ce que je dois absolument définir mes div et mon placeholder avant de passer au code behind??? ou il y a une autre solution qui m'échape
Commenter la réponse de gatita_dev
gatita_dev 135 Messages postés vendredi 27 mai 2005Date d'inscription 5 février 2008 Dernière intervention - 11 déc. 2006 à 11:51
0
Merci
Enfin j'ai fait comme cela mais je veux juste savoir si ça marche avec les normes asp.net:
 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myControl As UserControl = LoadControl("_myControl.ascx")
        Dim menu, contenu, bandeau, pied_page As New HtmlGenericControl
        bandeau.TagName = "div"
        menu.TagName = "div"
        contenu.TagName = "div"
        pied_page.TagName = "div"
        bandeau.ID = "bandeau"
        menu.ID = "menu"
        contenu.ID = "contenu"
        pied_page.ID = "pied_page"
        contenu.Controls.Add(myControl)
        Page.Controls.Add(bandeau)
        Page.Controls.Add(menu)
        Page.Controls.Add(contenu)
        Page.Controls.Add(pied_page)
    End Sub
J'ai pas utilisé le placeHolder puisque ça fonctionne sans, et j'ai pas ajouter le control dans le page_init.
si c'est pas comme ça que je dois faire merci de me rectifier
Bonne journée
Commenter la réponse de gatita_dev

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.