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 :

récupérer le contenue d'une textBox dynamique


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Points : 88
    Points
    88
    Par défaut récupérer le contenue d'une textBox dynamique
    Bonjour,

    je suis dans le développement d'une application web pour une demande d'intervention. Dans ce context j'ai réalisé un tableau comme cela :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    TableRow ligne = new TableRow();
     
                        //date                    
                        TableCell cel1 = new TableCell();
                        cel1.Text = dr.GetString(2);
                        cel1.BorderWidth = 1;
                        ligne.Cells.Add(cel1);
     
                        //service
                        TableCell cel2 = new TableCell();
                        cel2.Text = dr.GetString(3);
                        cel2.BorderWidth = 1;
                        ligne.Cells.Add(cel2);
     
                        //nom
                        TableCell cel3 = new TableCell();
                        cel3.Text = dr.GetString(4);
                        cel3.BorderWidth = 1;
                        ligne.Cells.Add(cel3);
     
                        //type
                        TableCell cel4 = new TableCell();
                        cel4.Text = dr.GetString(6);
                        cel4.BorderWidth = 1;
                        ligne.Cells.Add(cel4);
     
     
                        //etat
                        TableCell cel5 = new TableCell();
                        cel5.Text = " <a href='traitement.aspx?x=" + dr["etat"] + "&y=" + dr["code_intervention"] + "' style='text-decoration:none; color:black; border:0px;'> <img src='images/Forward.png'style='border:0px;'></a>";
                        cel5.BorderWidth = 1;
                        ligne.Cells.Add(cel5);
     
     
                        //suivie
                        TableCell cel6 = new TableCell();
                        maTextBox = new TextBox();
                        maTextBox.ID = "tb"+dr[0].ToString();
                        monBouton = new ImageButton();
                        monBouton.ImageUrl = "images/next.png";
                        monBouton.ID = dr[0].ToString();
                        monBouton.Click += new ImageClickEventHandler(monBouton_click);
                        cel6.Controls.Add(maTextBox);
                        cel6.Controls.Add(monBouton);
                        cel6.BorderWidth = 1;
                        ligne.Cells.Add(cel6);
     
     
                        string etat = dr["etat"].ToString();
                        if (etat == "0")
                        {
                            ligne.BackColor = System.Drawing.Color.Tomato;
                        }
                        else if (etat == "1")
                        {
                            ligne.BackColor = System.Drawing.Color.Orange;
                        }
                        else if (etat == "2")
                        {
                            ligne.BackColor = System.Drawing.Color.LightGreen;
                        }
     
                        Table1.Rows.Add(ligne);
    avec un imageButton et une textBox dans chaque ligne, tout s'affiche et j'arrive bien dans la méthode appelé lors du click qui est : monBouton_click

    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
    protected void monBouton_click(object sender, ImageClickEventArgs e)
        {
     
     
            foreach (Control c in this.Form.Controls)
            {
                if (c.GetType() == typeof(TextBox)) //vérifier le casting
                {
                    TextBox tb = (TextBox)c; //casting effectif
                     Label2.Text += tb.Text; //ici je rentre dans mon label2 tout le contenue de toute mes textBox juste pour tester
                }
            }
     
     
     
     
        }
    dans cette méthode je veux parcourir tous les controles de ma page pour trouver la textBox qui à l'ID : "tb"+dr[0].ToString();
    mais pour le momant je n'arrive pas à trouver mes textBox en parcourant ma page.

    si quelqu'un à une idée ....
    merci bcp

  2. #2
    Membre averti

    Inscrit en
    Septembre 2004
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 105
    Points : 339
    Points
    339
    Par défaut
    Tu ne trouve pas ce TextBox parce qu'il n'appartient pas à this.Form.Controls.
    Il est dans cel6.Controls.

    Le plus simple serait de créer un champ pour garder une reference vers cette TextBox; de cette façon, tu n'a même pas à la chercher.

    Sinon, il faut faire une recherche recursive. Voici le pseudo code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    maTextBox = ChercheDans(this.Form.Controls);
     
    TextBox ChercheDans(listControls)
    {
      foreach (Control c in listControls)
        if(c est maTextBox) return c;
        else if(c est un containeur de contrôles)
        {
          var maTextBox = ChercheDans(c.Controls);
          if(maTextBox != null)
            return maTextBox;
        }
      return null; // Pas trouvé
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 11h33
  2. Récupérer le contenu d'une textbox
    Par bigbendji dans le forum VB.NET
    Réponses: 11
    Dernier message: 12/05/2010, 14h33
  3. Récupérer la valeur d'une textBox générée dynamiquement
    Par Baptiste_87 dans le forum Débuter
    Réponses: 1
    Dernier message: 12/07/2009, 23h21
  4. Réponses: 8
    Dernier message: 17/06/2009, 16h40

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