IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Inserer dynamiquement un userControl


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut [C#] Inserer dynamiquement un userControl
    Bonjour,

    je souhaite inserer dynamiquement un user control.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UserControl oUserControl = new UserControl();
    oUserControl = (UserControl)oUserControl.LoadControl("tableList.ascx");
    myPlaceHolder.Controls.Add(oUserControl);
    Message d'erreur :
    Le chemin d'accès virtuel '/tableList.ascx' correspond à une autre application, ce qui n'est pas autorisé.
    je ne comprends rien

    merci
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    En fait il faut écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (UserControl)oUserControl.LoadControl("~/tableList.ascx");
    Note le "~" en plus. Ce signe indique de te renvoyer un chemin relatif à ton répertoire virtuel (il me semble) , sans ça il doit essayer de taper qque part genre à la racine de ton disque.

  3. #3
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    je n'ai plus de message d'erreur mais ca ne l'affiche pas dans le placeholder ?!?
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Oups ah oui ya qd même autre chose qui fonctionne pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UserControl oUserControl = new UserControl();
    oUserControl = (UserControl)oUserControl.LoadControl("tableList.ascx");
    Tu ne peux charger un controle qu'a partir d'un controle ou d'une page déja chargé (je ne maitrise pas du tout ce truc de LoadControl et Microsoft n'est pas trés clair la dessus donc je peux pas te donner d'explication).

    Donc si tu es déja dans une page ou un user control, ce qu'il faut faire c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonUserControl oUserControl = (MonUserControl)this.LoadControl("~/tableList.ascx");

  5. #5
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par Sphax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (UserControl)oUserControl.LoadControl("~/tableList.ascx");
    Note le "~" en plus. Ce signe indique de te renvoyer un chemin relatif à ton répertoire virtuel (il me semble) , sans ça il doit essayer de taper qque part genre à la racine de ton disque.
    Non, le ~ indique que le chemin indiqué démarre à la racine de l'application...

    Si l'adresse de ta page est : http://tonserveur/applic/list/page.aspx
    lorsque tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oUserControl = (UserControl)oUserControl.LoadControl("tableList.ascx");
    tableListe.ascx doit se trouver dans le même répertoire que page.aspx

    Si tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oUserControl = (UserControl)oUserControl.LoadControl("~/tableList.ascx");
    ASP.NET va chercher à récupérer le contrôle sur

    http://tonserveur/applic/tableList.ascx
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Merci pour ces précisions Keihilin, j'etais effectivement pas trés sur de moi sur ce ~.

  7. #7
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Mon chemin est bon car je n'ai plus d'erreur a la compilation,

    par contre mon userControl de s'affiche pas.

    Avez vous une idee ?
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    eu .... t'as lu ma réponse à ce sujet ? .... voir plus haut

  9. #9
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    oui bien sure, mon objet placeHolder est un control, donc ca devrait marcher
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Arf décidemment, merci de LIRE ma réponse topolino . Je ne te parle pas du myPlaceHolder.Controls.Add(oUserControl); qui lui devrait marcher, mais du LoadControl que tu fais à partir d'un controle qui n'est pas déja chargé : UserControl oUserControl = new UserControl(); !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment ajouter dynamiquement un UserControl?
    Par Nixar dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/11/2007, 11h31
  2. Réponses: 7
    Dernier message: 09/11/2007, 11h39
  3. creation dynamique de usercontrol
    Par Dude1205 dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/08/2007, 11h45
  4. Inserer dynamiquement des champs input avec attribut
    Par titou250 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/01/2007, 09h44
  5. inserer dynamiquement dans un fromulaire
    Par amigauss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/01/2006, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo