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

Windows Forms Discussion :

[c#]Comment désigner un contrôle de façon dynamique ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut [c#]Comment désigner un contrôle de façon dynamique ?
    Bonjour,
    j'ai 31 CheckBoxLists qui existent déjà en dur dans la page web :

    cbl_chir_1
    cbl_chir_2
    etc ...
    cbl_chir_31

    Je voudrais remplir ces contrôles dans une boucle for avec un indice j de 1 à 31 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for (int j = 1; j <= 31; j++)
            {
                string CodeSql = "SELECT valeur FROM MyTable WHERE JOUR = '" + j + "'";
     
                myAdapter = new SqlDataAdapter(CodeSql, myConnection);
                myDataTable = new DataTable();
     
                 DataRow CurrentRow = myDataTable.Rows[0];
                 affcochc(cbl_chir, Convert.ToString(CurrentRow["Chir"]));
             }
    affcochc va lire en base la valeur du champ Chir pour cocher certaines valeurs de cbl_chir.

    Je cherche à remplacer la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    affcochc(cbl_chir, Convert.ToString(CurrentRow["Chir"]));
    par une syntaxe du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    affcochc(cbl_chir_j, Convert.ToString(CurrentRow["Chir"]));
    Pour désigner le controle cbl_chir_j.

    Si quelqu'un a une idée ... Sinon je ferais 31 copiers-collers de la version initiale, ça marchera ...

    Merci

  2. #2
    Membre expérimenté Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Par défaut
    Salut,
    Tu pourrait lister tes CheckBox dans un tableau puis le parcourir dans ta boucle.
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //...
    CheckBox [] MesCheck = new CheckBox[] {cbl_chir1,cbl_chir2,cbl_chir3,cbl_chir4}; ///Tu mets tous les références sur tes checkbox...
    for (int j = 1; j <= 31; j++)
            {
                string CodeSql = "SELECT valeur FROM MyTable WHERE JOUR = '" + j + "'";
     
                myAdapter = new SqlDataAdapter(CodeSql, myConnection);
                myDataTable = new DataTable();
     
                 DataRow CurrentRow = myDataTable.Rows[0];
                 affcochc(MesCheck[i-1], Convert.ToString(CurrentRow["Chir"]));
             }
    //...

    Par contre, je trouve ta méthode pour extraire une seule valeur de la base trop exagéré(Un SqlDataAdapter, Une DataTable,Un DataRow) alors que:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         SqlCommand sqlcmd=new SqlCommand(CodeSql,myConnection);
          string valeur=sqlcmd.ExecuteScalar().ToString();   //<---retournera ta valeur
          affcochc(MesCheck[i-1], valeur);
    serait suffisant je crois.

  3. #3
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Merci DarkMolo,
    je vais essayer comme ça

    Ca marche très bien, merci beaucoup !

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

Discussions similaires

  1. [XL-2007] Comment reformater des libellés de façon dynamique ?
    Par leinadjan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2013, 22h24
  2. Réponses: 0
    Dernier message: 13/03/2010, 14h43
  3. comment désigner un composant créé dynamiquement
    Par OutOfRange dans le forum Composants VCL
    Réponses: 4
    Dernier message: 24/09/2006, 11h55
  4. Réponses: 2
    Dernier message: 05/05/2006, 17h44

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