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 :

Remplir DropdownList d'un UserControl


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut Remplir DropdownList d'un UserControl
    Bonjour tout le monde !

    J'ai un petit souci au niveau d'un usercontrol, je voudrais remplir une dropdownlist de ce usercontrol via ma page aspx qui le contient.

    J'ai donc créer une propriété DropDownList de mon UserControl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public DropDownList DropDownListFamilyStatus
        {
            get
            {
                this._personne.FamilyStatus = this.DDLFamilyStatus.SelectedItem.Value ;//Ma DDL de mon userControl
     
                return this.DropDownListFamilyStatus; 
            }
            set
            {
                this.DDLFamilyStatus.SelectedItem.Value   = value.ToString();
            }
        }
    Concernant la variable _personne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     private Personne _personne = new Personne();
    Et donc sur ma page aspx, le remplissage de cette dropdownlist :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
            this.Personne1.DropDownListFamilyStatus.DataValueField = "Code";//Mon UserControl Personne.ascx
            this.Personne1.DropDownListFamilyStatus.DataTextField = "Label";
     
            this.Personne1.DropDownListFamilyStatus.DataSource = family;//Collection de statuts familiaux
            this.Personne1.DropDownListFamilyStatus.DataBind();
    Je crois que je me suis emmêlé les pinceaux au niveau de ma propriété DropDownListFamilyStatus de mon ascx...

    Edit :

    Mon objet Personne est aussi instancié dans mon ascx de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public Personne Personne
        {
            get
            {
                this._personne.Address1=this.TextBoxAddress1.Text;//etc...
                return this._personne;
             }
            set
            {
               this.TextBoxAddress1.Text = value.Address1;//etc...
             }
    Si vous pouviez me donner un peu d'aide là dessus, ce serait cool.

    Merci !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    Salut,

    reste simple, les propriétés publiques vont te permettre de manipuler tes éléments de ton user control.

    Ton setter est incorrect, le Type est une DropDownList, si tu veux affecter le selectedItem fais une méthode à part ou carrément fais un accesseur de la dropdownList et affecte ses propriétés coté aspx.

    juste un exemple tout simple pour binder ta ddl au niveau de l'user control:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public void RemplirDdlFamilyStatus( typeDeLaCollection collection  )
        {
           DDLFamilyStatus.DataValueField = "Code";
           DDLFamilyStatus.DataTextField = "Label";
     
            DDLFamilyStatus.DataSource = collection ;
            DDLFamilyStatus.DataBind();
        }
    Appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     this.webusercontrolDeTaPage.RemplirDdlFamilyStatus(collection);
    J'espère t'avoir aidé bye

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    en fait il faut que tu passes par les évenements pour remplir ta dropdownlist. ta page aspx doit s'abonner à un évenement de ton usercontrol.

  4. #4
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    @NeoHiro :Merci de ta réponse, mais j'avais déjà pensé à ça, le soucis c'est que j'ai environ une quinzaine de types de collection... Je voudrais éviter de faire 15 méthodes :/.

  5. #5
    Membre confirmé Avatar de bartoumi
    Profil pro
    Inscrit en
    Février 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 178
    Par défaut
    rattlehead a raison
    Fais toi une seul methode pour tes dropDownlist et abone tout tes evenement sur elle
    a toi de gerer la passage d'arguments

  6. #6
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Ok, je vois à peu près, mais il reste toujours le problème de type, et là je suis totalement perdu...

    Je dois utiliser quel évènement d'ailleurs ? Je dois en créér un ?

    (Je vous avoue que je n'ai jamais créé d'évènement en c#... Je me documente là dessus en ce moment)

    Merci de votre aide en tout cas .

  7. #7
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    oui tu en crées un de toutes pieces.

  8. #8
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Bon franchement je vois pas comment gérer le truc, je vous avoue, c'est toujours le problème des types...

    Alors, au lieu de gérer avec des méthodes et des events, on peut pas simplement passer par une propriété d'un usercontrol qui reprendrait la dropdownlist de mon usercontrol pour pouvoir lui binder les valeurs de la collection de mon aspx ? J'ai plusieurs dropdownlists à binder, le même nombre que le type de collection que je possède en somme.

    En gros, peut-on faire ça :

    Page aspx:
    MaCollectiondeType1 ---> Binding sur MaDDLType1 accessible via MonUserControl.MaPropertyDDLType1.Binding ---> MaPropertyDDLType1 get MaDDLType1 set MaDDLType1.

    ????

    Edit:Bon j'ai trouvé, et comme d'hab c'est tout bête et je mets 2 plombes à trouver ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public DropDownList DropDownListFamilyStatus
        {
            get
            {
                return this.DDLFamilyStatus;
            }
            set
            {
                this.DDLFamilyStatus = value;
            }
        }
    Merci.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    Salut,

    reste simple, les propriétés publiques vont te permettre de manipuler tes éléments de ton user control.

    Ton setter est incorrect, le Type est une DropDownList, si tu veux affecter le selectedItem fais une méthode à part ou carrément fais un accesseur de la dropdownList et affecte ses propriétés coté aspx.

    juste un exemple tout simple pour binder ta ddl au niveau de l'user control:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public void RemplirDdlFamilyStatus( typeDeLaCollection collection  )
        {
           DDLFamilyStatus.DataValueField = "Code";
           DDLFamilyStatus.DataTextField = "Label";
     
            DDLFamilyStatus.DataSource = collection ;
            DDLFamilyStatus.DataBind();
        }
    Appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     this.webusercontrolDeTaPage.RemplirDdlFamilyStatus(collection);
    J'espère t'avoir aidé bye

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

Discussions similaires

  1. [Débutant] remplir dropdownlist d'une base de données
    Par amoula2511 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/06/2012, 08h04
  2. Evénement d'un DropDownList dans un UserControl
    Par CYFL dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/08/2009, 17h38
  3. Réponses: 4
    Dernier message: 19/04/2009, 20h49
  4. [VB.Net] Probleme pour remplir un DropDownList
    Par angelevil dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/03/2005, 17h59

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