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

C# Discussion :

création des DDLs par une boucle for


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut création des DDLs par une boucle for
    salut,
    je veux créer des dropdown list (DDL) selon le nombre j (par exemple j=3)

    for(int i=0 ; i<j ; i++)
    {
    ///code pour créer la DDL de valeurs( 1, 2)
    }
    resultat 3 DDL
    merci

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par sophiesophie Voir le message
    salut,
    je veux créer des dropdown list (DDL) selon le nombre j (par exemple j=3)

    for(int i=0 ; i<j ; i++)
    {
    ///code pour créer la DDL de valeurs( 1, 2)
    }
    resultat 3 DDL
    merci
    J'ai rien compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0 ; i<j ; i++)
    {
            DropDownList ddl = new DropDownList();
            // ici tu l'ajoutes à ta page
    }
    Par contre ton histoire de 1, 2 je comprends pas.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    bonsoir,
    j'ai deux pages page1 et page2

    dans la page2, j'ai récupérer la valeur de j (j=3) de la page1 et je veux créer des DDL(dropdownlist) selon la valeur de j
    cad 3 DDL,
    j'ai essayer avec ta solution mais rien est affiché.
    j'ai ajouter ces lignes pour tester, aussi rien est affiché
    DropDownList ddl = new DropDownList();
    // ddl.SelectedItem = '0';
    ddl.DataValueField = "0";
    ddl.DataTextField = "0";
    ddl.SelectedValue = "0";

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 100
    Points
    100
    Par défaut
    Je pense que Skyounet voulais dire par tu l'ajoutes à ta page un truc du style :
    (exemple sous une appli Windows Forms)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DropDownList ddl = new DropDownList();
    this.Controls.Add(this.ddl);// Ceci te permet de l'ajouter a ta page normalement

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    mon application est une application web form

  6. #6
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par sophiesophie Voir le message
    mon application est une application web form
    même principe

    Et merci de penser à utiliser les balises ( ou à cliquer sur le # dans la barre d'édition des messages ) afin que le code soit lisible.
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    salut,
    excusez moi, j'ai essayé plusieurs fois mais rien est affiché toujours erreur.
    carquand j'crit "this." ddl n'apparut pas dans la liste , il ne connait pas ddl

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 100
    Points
    100
    Par défaut
    tu appelles bien This après avoir créer totalement ta DropDownList ?

    fais nous voir un morceau de code, si tu veux qu'on puisse t"aider un peu plus.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected void Page_Load(object sender, EventArgs e)
        {
             DropDownList ddl = new DropDownList();
             this.Controls.Add(this.ddl);
    }//
    j'ai essayé avec ce code sans le mettre dans une boucle for pour voir la création d'un seul DDL mais rien est affiché.
    mon idée est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void Page_Load(object sender, EventArgs e)
        {
             DropDownList ddl = new DropDownList();
             }//
    c'est sure elle manque quelque chose car

    il faux que les DDL seront de nom différents, je pense il faux entrer la variable "i" en jeu pour distinguer entre les DDL.
    cad on obtiendra com resultats 3 DDL de nom ddl0, ddl1, ddl2

    merci de votre collaboration

  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
    Non mais hazholhim a fait une petite erreur, le code correct c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DropDownList ddl = new DropDownList();
    this.Controls.Add(ddl);
    ddl étant une variable locale et pas d'instance... Je dis ça sans méchanceté mais il ne te manquerait pas qques notions de programmation, ou en tout cas de POO ? Par ce que s'attaquer aux contrôles dynamiques en asp.net dans ce cas là ça va être un peu difficile...

  11. #11
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    oui, Mr je suis débutante en C#.NET et ASP.NET et c'est la première fois que je programme avec l'orienté objet avec le Web service.
    bon j'essayé de mettre vous proposition dans ma page .cs et il ma'affiche cet erreur en rouge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        protected void Page_Load(object sender, EventArgs e)
        {
      DropDownList ddl = new DropDownList();
                   this.Controls.Add(ddl); 
    }
    Erreur du serveur dans l'application '/WS_Hotels'.
    --------------------------------------------------------------------------
    Le contrôle 'ctl02' de type 'DropDownList' doit être placé dans une balise form avec runat=server.


    de meme je le met dans ma page .aspx et il m'affiche cet erreur ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <% DropDownList ddl = new DropDownList();
                   this.Controls.Add(ddl); %>
    Erreur du serveur dans l'application '/WS_Hotels'.
    --------------------------------------------------------------------------
    La collection a été modifiée ; l'opération d'énumération peut ne pas s'exécuter.

    merci pour votre aide

  12. #12
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    aaah, j'ai essayé avec les text box dans des panels et ça marche bien (voir code si dessous), mais je ne connais pas comment tester sur la valeur de chaque textbox.
    bon dans mon application je veux tester sur les ddls (la valeur selectedvalue)), je sai pas comment faire?

    c'est à dire je veux tester sur la valeur sélectionné du ddl1 et de meme du ddl2 etc


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (int i = 0; i < 3; i++)
    {
         TextBox ss = newTextBox();
         ss.ID = "TextBox" + i.ToString();
         ss.Text = "bonjour" + i.ToString();
         Panel1.Controls.Add(ss);
    }

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 100
    Points
    100
    Par défaut
    pour ta DropDownList, d'après le message d'erreur que tu as, je pense qu'il faut la lier a un controle de page.aspx du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form id="form1" runat="server">
        <div>
     
        </div>
        <asp:Button ID="Button1" runat="server"  Text="Button" PostBackUrl="~/Default2.aspx" />
        </form>
    et mettre dans le fichier Aspx.cs le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    protected void Page_Load(object sender, EventArgs e)
        {
            DropDownList ddl = new DropDownList();
            form1.Controls.Add(ddl);
        }
    Mais bon je ne susi pas sur, n'étant pas un développeur ASP.Net. Mais je pense qu'il faut que tu t'aide de tes messages d'erreurs pour essayer de trouver le problème.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    bonsoir, j'ai trouvé une solution

    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
    protected void Page_Init(object sender, EventArgs e)
        {
            for (int i = 0; i < 3; i++)
            {
                DropDownList ddl = new DropDownList();
                ddl.ID = "ddl" + i.ToString();
                for (int j = 1; j < 4; j++)
                 {
                     ListItem item = new ListItem(j.ToString(),j.ToString());
                      ddl.Items.Add(item);
                  }
                Panel1.Controls.Add(ddl);
     
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected void Button1_Click(object sender, EventArgs e)
        {
             string str1 = ((DropDownList)Panel1.FindControl("ddl1")).Text;
             string str2 = ((DropDownList)Panel1.FindControl("ddl2")).Text;
             string str13= ((DropDownList)Panel1.FindControl("ddl3")).Text;
        }
    mais il y'a un autre problème :
    j'affiche les valeurs de str1, str2 et str3 ; le résultats est 1 pour tous;
    1 c'est la 1er valeur dans la DDL;
    quest ce qu'il faux faire pour afficher la valeur séléctionner vraiment j'ai besoin de cette valeur séléctionner pour terminer la programmation de mon application ; s'ils vous plait aidez moi

  15. #15
    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
    Ya longtemps que j'ai pas fait des contrôles dynamiques en asp.net, mais je pense qu'il faut séparer la création de l'initialisation. Dans le PageInit tu crées tes DDL tout le temps et dans le pageLoad tu les initialises uniquement si ce n'est pas un postBack:

    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
    27
    28
    29
     
    DropDownList[] MesDdl = new DropDownList[3];
     
    protected void Page_Init(object sender, EventArgs e)
        {
            for (int i = 0; i < 3; i++)
            {
                MesDdl[i] = new DropDownList();
                MesDdl[i].ID = "ddl" + i.ToString();
     
                Panel1.Controls.Add(MesDdl[i]);
     
            }
        } 
     
    protected void PageLoad(.....)
    {
       if(!IsPostBack) 
       {
          for (int i = 0; i < 3; i++)
          {
             for (int j = 1; j < 4; j++)
             {
                  ListItem item = new ListItem(j.ToString(),j.ToString());
                  MesDdl[i].Items.Add(item);
              }
          }
       }
    }

  16. #16
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    bonsoir,
    tous d'abord il n'accepte pas l'écriture de "Mesddl[i]"
    aussi si je sépare la création à l'initialisation, il ne connait pas le nom de la DDL dans la page load

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                for (int i = 0; i < 3; i++)
                {
                    for (int j = 1; j < 4; j++)
                    {
                        ListItem item = new ListItem(j.ToString(), j.ToString());
                        nbreAD.Items.Add(item);
                    }
                }
            }
    erreur:: le nom nbreAd n'existe pas dans le contexte actuelle
    => est ce qu'il ya d'autres solutions

  17. #17
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Trop de réponses pour un problème aussi simple ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected void Page_Load(object sender, EventArgs e) {
       for (int i = 0; i < 3; i++) {
          DropDownList ddl = new DropDownList();
          ddl.ID = "ddl" + i.ToString();
          Panel1.Controls.Add(ddl);
          if(!Page.IsPostBack) {
             for (int j = 1; j < 4; j++) {
                  ListItem item = new ListItem(j.ToString(),j.ToString());
                  ddl.Items.Add(item);
             }
          }  
       }
    }
    A chaque chargement ou PostBack de la page, les DropDownList sont créées, nommées et ajoutées à Panel1.

    Ensuite, si il ne s'agit pas d'un PostBack, alors on ajoute les différents ListItem.

  18. #18
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    bonsoir si je met la boucle d'initialisation dans un test de ispostback
    un msg d'erreur est affiché sur cet ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string nbreAD1 = ((DropDownList)Panel_adulte.FindControl("nbreAD1")).Text;
    La référence d'objet n'est pas définie à une instance d'un objet.
    si je met cette ligne aussi dans un test ispostback

    rien est affiché dans les text box(pour récupérer les valeurs de ddl)

  19. #19
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Copie tout ton code d'initialisation parce que là, je comprends rien à ce que tu fais et j'ai l'impression que tu n'en comprends pas plus.

  20. #20
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    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
    27
      protected void Page_Init(object sender, EventArgs e)
        {
            for (int i = 0; i < 3; i++)
            {
                Label ch = new Label();
                ch.Text = "Chambre" + (i + 1).ToString();
                Panel_chbre.Controls.Add(ch);
                DropDownList nbreAD = new DropDownList();
                nbreAD.ID = "nbreAD" + i.ToString();
                     for (int j = 1; j < 4; j++)
                    {
                        ListItem item = new ListItem(j.ToString(), j.ToString());
                        nbreAD.Items.Add(item);
                    }
                    Panel_adulte.Controls.Add(nbreAD); //1er panel contient 3DDL
               
               DropDownList nbreENF = new DropDownList();
                nbreENF.ID = "nbreENF" + i.ToString();
                for (int j = 0; j < 4; j++)
                {
                    ListItem item = new ListItem(j.ToString(), j.ToString());
                    nbreENF.Items.Add(item);
                }
                Panel_enf.Controls.Add(nbreENF); //2eme  panel contient 3DDL
    
         }
    ///****je test sur chaque DDL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     protected void poursuivre_Click(object sender, EventArgs e) {
     string nbreAD1 = ((DropDownList)Panel_adulte.FindControl("nbreAD1")).Text;
     string nbreENF1 = ((DropDownList)Panel_enf.FindControl("nbreENF1")).Text;
     
                TextBox1.Text = nbreAD1;
                TextBox2.Text = nbreENF1;
     
            //}

Discussions similaires

  1. Création d'objets dans une boucle for
    Par urban_p dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/06/2008, 10h34
  2. [Timer] timer bloqué par une boucle for?
    Par Jidefix dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 18/09/2006, 17h12
  3. ouvrire des fichiers par un boucle for
    Par stiko dans le forum C++
    Réponses: 5
    Dernier message: 08/07/2006, 15h14
  4. [MySQL] Traitement des variables d'une boucle for
    Par liryc78 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/03/2006, 20h53

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