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 :

usercontrol et postback


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut usercontrol et postback
    Bonjour à tous

    ce post fait suite à celui ci (http://www.developpez.net/forums/d91...trol-postback/) visiblement mal placé

    bref, j'ai un soucis avec un usercontrol qui contient une liste déroulante chargée en fonction d'un paramètre qui provient de la page principale.
    puisque la valeur du paramètre est variable (c'est le but), j'ajoute dynamique mon UC dans ma page de la manière suivante (c'est pê pas la bonne méthode):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim monUC1 As MonUC = LoadControl("~/UserControls/monUC.ascx")
    monUC1.param = maValeur
    Me.FindControl("UC").Controls.Add(monUC1)
    jusque là pas de pb. seulement j'ai une RadioButtonList dans mon UC et un bouton valider pour sauvegarde un enregistrement et lorsque j'arrive dans l'evenement Click de mon bouton, la selectedValue de mon RadioButtonList est tjrs 0 (ma première valeur)

    j'ai testé la valeur dans le pageLoad du UserControl, elle vaut aussi 0. En revanche à l'écran, c'est la bonne valeur qui est selectionnée.

    je ne comprends pas trop. j'imagine qu'au postback le UserControl est recréé et donc réinitialisé mais dans ce cas pourquoi la bonne valeur est finalement conservée et affichée ? et sinon comment faire pour retrouver la valeur selectionnée ?

    --------
    en fait j'ai refais des tests. Quand ma page et donc mon UC se recharge suite à un postback le page load du webform se lance, puis celui du usercontrol (là la valeur de mon radio button list vaut tjrs 0). par contre lorsque je teste la même valeur dans le prerender de la page ou du UserControl, elle prend désormais la bonne valeur.
    comme si les valeurs du postback n'étaient rechargées qu'en tout dernier. ca me parait étrange. je ne sais pas si je m'y prends bien.

    d'un autre coté, lorsque je n'ajoute pas le UC dynamiquement mais directement dans le code de la page aspx comme cela :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uc1:uc1 id="Uc1" param="xxx" runat="server"></uc1:uc1>
    je n'ai pas le pb. la bonne valeur est directement accessible. mais dans ce cas comment lui passer un paramètre "param" qui peut varier en fonction des choix de l'utilisateur?

    la seule solution que j'ai trouvée c'est que le UserControl aille directement lire la valeur "param" dans la page parent dans son page load. ca ma parait assez lourd parce qu'il faut que le UC connaisse le nom des controles dans la page parents pour récuperer leur valeurs.

    merci de votre aide

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    C'est un problème classique lorsqu'on utilise des UserControls dynamiquement et qu'on ne maîtrise pas le cycle de vie d'une page ASPX.

    As-tu essayé de loader ton contrôle dans le Page_Init et non le Page_Load ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    ouais j'imagine bien que ca vient du chargement dynamique mais j'ai pas trouvé les infos que je cherchais concernant le cycle de vie d'une page ASP.

    j'ai fait des tests pour connaitre la valeur dans le Page_Init du UC mais effectivement je n'ai pas testé de charger le UC dans le Page_Init de la page!!

    Enfin je pense effectivement que c'est par là qu'il faut que je cherche ! merci Nicolas

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/05/2013, 13h33
  2. Réponses: 4
    Dernier message: 22/08/2011, 19h32
  3. Réponses: 3
    Dernier message: 21/09/2009, 10h33
  4. [C#] Postback à la place de onclick avec Entrée
    Par Anomaly dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/09/2004, 14h35
  5. [VB6] [UserControl] Évènements personnalisés
    Par Frankywinky dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/05/2003, 17h56

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