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#]WebUserControl dynamique


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 7
    Par défaut [c#]WebUserControl dynamique
    voila, je voudrais chargé dynamiquement un usercontrol. je m'explique, en fonction des choix de l'utilisateur, je charge dans un place holder un Usercontrol determiné.

    Pour cela je faits ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    isineo_web.UserControl.Survey_SimplyRadioList c	=	new isineo_web.UserControl.Survey_SimplyRadioList();
    m_placeQuest.Controls.Add(c);
    Tous ce passe, il rente dans le pageload de mon usercontrol, tout s'execute correctement, mais à l'affichage, le usercontrol n'est pas affiché

  2. #2
    Membre émérite
    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
    Par défaut
    Salut,

    Pour créer dynamiquement un userControl, il ne faut pas faire de new mais utiliser la fonction Page.LoadControl. Je te laisse regarder ça, dis nous si tu as un soucis, mais tu peux aussi faire une recherche, c'est le genre de question qui revient souvent ici.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 7
    Par défaut
    OK maintenant je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DataSet 	SurveyData	=	(DataSet)Session[Test.DataSurveySessonKey];
    			isineo_web.UserControl.Survey_SimplyRadioList c = (isineo_web.UserControl.Survey_SimplyRadioList)LoadControl("~/UserControl/Survey_SimplyRadioList.ascx");
    			c.SurveyData	=	SurveyData;
    			c.subQuestionId	=	subQuestionId;
    			m_placeQuest.Controls.Add(c);
    ca m'affiche bien les composant de Usercontrol, mais sans modifier l'affichage. le texte de mon label est toujours label alors qu'il devrait prendre la valeur d'un champ de ma base.

    je ne vois pas trop pourquoi vu que le code de mon usercontrol marche parfaitement lorsqu'il est directement integré dans ma page aspx

  4. #4
    Membre émérite
    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
    Par défaut
    C'est normal et c'est lié à l'ordre des evenement dans les pages et controles : qd tu fais ton LoadControl, aucun évenement n'est appelé dans ton controle (en particulier le PageInit et le Page_Load ainsi que le LoadViewState) , ceux ci ne surviennent que lors de l'ajout du controle dans la page, donc au moment ou tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_placeQuest.Controls.Add(c);
    A ce moment la tous les controles qui sont dans ton user controles sont initialisés, les valeurs que tu leurs avait donné sont perdues. Pour résoudre le probleme il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DataSet    SurveyData   =   (DataSet)Session[Test.DataSurveySessonKey];
             isineo_web.UserControl.Survey_SimplyRadioList c = (isineo_web.UserControl.Survey_SimplyRadioList)LoadControl("~/UserControl/Survey_SimplyRadioList.ascx");
            m_placeQuest.Controls.Add(c);
     c.SurveyData   =   SurveyData;
             c.subQuestionId   =   subQuestionId;

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 7
    Par défaut
    OK c'était, Merci encore pour ton aide Sphax

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

Discussions similaires

  1. WebUserControl + chargement dynamique + événements
    Par webworker dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/07/2008, 10h19
  2. [C#] WebUserControl dynamique
    Par hurricane dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/01/2006, 07h16
  3. comment creer un alias dynamique avec BDE et ODBC
    Par david33 dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/07/2002, 11h50
  4. Réponses: 4
    Dernier message: 13/05/2002, 16h43
  5. repertoire temp dynamique
    Par killpilot dans le forum C
    Réponses: 2
    Dernier message: 26/04/2002, 16h19

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