Récupérer textbox dynamiques

Signaler
Messages postés
19
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
3 juillet 2008
-
Messages postés
3
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Dernière intervention
13 février 2010
-
Bonjour

voila j'essaye depuis un moment de coder des textbox dynamiques, avec un peu d'aide j'ai réussi à en créer

maintenant le probléme c'est que j'essaye de les récupérer mais je n'y arrive pas
voila le code de la céation du textebox
for

(
int i = 1; i < (x); i++){

      TableRow

Row_Contact= newTableRow();

   TableCell Cell_Contact =
new
TableCell();

   Row_Contact.Cells.Add(Cell_Contact);
   tableContact.Rows.Add(Row_Contact);

   TextBox textbox_Contact =
new
TextBox();   textbox_Contact.ID =

String.Format(
"textbox_Contact{0}", i);   textbox_Contact.Width = 150;

   textbox_Contact.Text =

String.Format(
" ", i);   Cell_Contact.Controls.Add(textbox_Contact);

 }

 

7 réponses

Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Salut,

Control[] lTabListeCtrl = Cell_Contact.Controls.Find("
textbox_Contact1", false);

Ca va te renvoyer un tableau qui contient tous les contôles qui répondent au nom passé. Le 2nd argument c'est si on faire la recherceh dans les controles conteneur.

Voila.

Messages postés
19
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
3 juillet 2008

oximoron merci d'avoir répondu

je suis novice en C#, mais j'ai essayé mais ca pas marché

en fait ce que j'ai fait c'est d'ajouter un bouton, et en cliquant sur le bouton tu récupére le textbox:

alors j'ai fais ca mais sans résultat

public

void Button1_Click(
object sender, System.
EventArgs e){

foreach (
Control htmlform
in Page.Controls){

foreach (
Control table
in htmlform.Controls){

foreach (
Control row
in table.Controls){

foreach (
Control cell
in row.Controls){

foreach (
Control control
in cell.Controls){

Control[] lTabListeCtrl = Cell_Contact.Controls.Find(
"textbox_Contact1",
false);}

}

}

}

}

}

ca me donne l'erreur suivante
:CS0103: Le nom 'Cell_Contact' n'existe pas dans le contexte actuel
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

euh c'est quoi ces foreach ?

Je sais absolument pas ce que tu fait, je ne connait pas le type de tes contôles ... mais voici un exemple un peu plus parlant.

J'ai un panel nommé lPnlGrp.

Dans ce panel je vais rajouter mes textBox
//Création
for(int i = 0 ; i < lNbrTxtBox ; i++)
{
    TextBox loTxt = new TextBox();
    //les paramètres du textbox
    loTxt.Name =


String.Format("textbox_Contact{0}", i.toString());


   

    lPnlGrp.Controls.add(
loTxt
);


}

//Récupération

Control
[] lTabListeCtrl =
lPnlGrp
.Controls.Find(
"textbox_Contact1"
,
false
);

if ((
lTabListeCtrl .lenght > 0)
&& (
lTabListeCtrl[0] is TextBox
))
{
   
TextBox loTxtRecup  = (
TextBox
)
lTabListeCtrl[0];


}
Messages postés
19
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
3 juillet 2008

en fait j'ai un formulaire dans une page aspx

je clique sur un bouton generer et il doit me genrer des text box dynamique

cette partie j'arrive bien à la faire, mais quand j'arrive à la récupération ca bloque,

j'ai essayé le code que t'as mis,j'ai associé la création à un bouton et j'ai associé la  Récupération à un autre bouton dans la meme page aspx, mais ca marche toujours pas.

public
void button_generate_num_athor(
object sender, System.
EventArgs e){

lblnbAuthor.Text = ddlAthorsNumber.SelectedValue;

int x =
Int32.Parse(lblnbAuthor.Text);

for (
int i = 1; i < x; i++)
{
TableRowRow_Contact= newTableRow();
   TableCell Cell_Contact = newTableCell();

   Row_Contact.Cells.Add(Cell_Contact);
   tableContact.Rows.Add(Row_Contact);

   TextBox
textbox_Contact = newTextBox();

   textbox_Contact.ID =
String.Format("textbox_Contact{0}", i);

   textbox_Contact.Width = 150;

   textbox_Contact.Text =
String.Format(" ", i);

   Cell_Contact.Controls.Add(textbox_Contact);

   lPnlGrp.Controls.Add(textbox_Contact);

 }

maintenant sur la meme pasge j'ai crée un autre bouton comme ca:

public
void Button1_Click(
object sender, System.
EventArgs e){

   //Récupération

   Control[] lTabListeCtrl = lPnlGrp.Controls.Find(
"textbox_Contact1",
false);

   if ((lTabListeCtrl.lenght > 0) && (lTabListeCtrl[0]
is
TextBox))      {

         TextBox loTxtRecup = (
TextBox)lTabListeCtrl[0];      }

}

Bon l'erreur qu'il me sort mainetant c'est: CS0117: 'System.Web.UI.ControlCollection' ne contient pas de définition pour 'Find'
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Arf des webforms ... je ne connais pas ou plutôt plus les webforms. Je vais pas pouvoir t aider beaucoup plus :(
Messages postés
19
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
3 juillet 2008

merci qaund meme
Messages postés
3
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Dernière intervention
13 février 2010

Salut, oximoron,
Bien que ton dernier post date de mai 2008, je t'écris juste pour te remercier de ton code (QUI MARCHE PARFAITEMENT) et m'a vraiment dépanné (pour une application de 3D en relief).