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#] Recuperation d'une valeur DropDownList


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#] Recuperation d'une valeur DropDownList
    Bonjour,

    Lorsque je soumets mon formulaire je voudrais recuperer la valeur d'un dropdownlist que je creé dynamiquement; cela me retourne toujours vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    private void Page_Load(object sender, System.EventArgs e){
     
    tblCellSupport.Controls.Add(oBdd.createDropDownList("ddlSupport","ListSupports","id","libelle"));
     
    if(!Page.IsPostBack){
     
    oDropDownList = (DropDownList)tblCellSupport.FindControl("ddlSupport");
    oDropDownList.Items.Insert(0,new ListItem("Indifferent",""));
    oDropDownList.SelectedIndex = 0;
     
    }else{
    myTable.Visible = false;
    if((Request.Form["__EVENTTARGET"]).IndexOf("Moteur de recherche") ==-1) loadControl();
    }
    }
     
     
    private void loadControl(){
    oTableList = (tableList)LoadControl("~/tableList.ascx");
     
    oDropDownList = (DropDownList)this.tblCellSupport.FindControl("ddlSupport");
    oTableList.cSupport = oDropDownList.SelectedValue;
    myPlaceHolder.Controls.Add(oTableList);		
    }
    }
    Impossible de recuperer la valeur de "oDropDownList.SelectedValue;" lorsque je soumets le formulaire.

    merci si vous avez une idee

  2. #2
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Hello,

    oTableList.cSupport = oDropDownList.Text

    Ca marche ?

  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
    cette propriete n'existe pas dans un dropdownlist. Mais c'est pas la le probleme. Le probleme est que :
    "oDropDownList = (DropDownList)this.tblCellSupport.FindControl("ddlSupport");" n'est pas trouvé ?!?

  4. #4
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Si tu créé dynamiquement ton webcontrol, tu devras le recréer après chaque postback, le viewstate s'occupant de lui affecter la valeur qu'il avait lors du post.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void Page_Load(object sender, System.EventArgs e) {
      if (IsPostBack)
      {
        /* création de tes contrôles dynamique*/ ;
        return;
      }
     
      /* création des tes contrôles */
      /* initialisation de ceux ci */ 
    }

  5. #5
    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 je sais c'est ce que je fais, mais ca ne marche pas.

    Par contre j'ai trouvé la solution, car d'autres ont eu le meme phenomene que moi. Il faut recreer le dropdownlist dans le onInit().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    override protected void OnInit(EventArgs e){
    //
    // CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
    //
    			tblCellSupport.Controls.Add(oBdd.createDropDownList("ddlSupport","ListSupports","id","libelle"));
    oDropDownList = (DropDownList)this.tblCellSupport.FindControl("ddlSupport");
     
    InitializeComponent();
    base.OnInit(e);
    }
    Voila...

    Astuce importante, car apperement y a des pb avec le viewstate.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2006, 17h05
  2. pb asp avec la recuperation d'une valeur
    Par leclone dans le forum ASP
    Réponses: 7
    Dernier message: 23/05/2006, 14h05
  3. [XML] Recuperation d'une valeur
    Par cosmos38240 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 05/10/2005, 14h13
  4. Probleme recuperation d'une valeur : script vbs -> .bat
    Par pinpin_du_net dans le forum Windows
    Réponses: 3
    Dernier message: 10/05/2005, 12h43
  5. Réponses: 4
    Dernier message: 01/09/2004, 16h56

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