Récupérer textbox dynamiques

cs_plateau Messages postés 19 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 3 juillet 2008 - 6 mai 2008 à 18:13
cs_vaz Messages postés 3 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 13 février 2010 - 13 févr. 2010 à 09:03
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

oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
6 mai 2008 à 20:06
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.

0
cs_plateau Messages postés 19 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 3 juillet 2008
6 mai 2008 à 20:16
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
0
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
6 mai 2008 à 20:36
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];


}
0
cs_plateau Messages postés 19 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 3 juillet 2008
6 mai 2008 à 21:08
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'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
6 mai 2008 à 21:22
Arf des webforms ... je ne connais pas ou plutôt plus les webforms. Je vais pas pouvoir t aider beaucoup plus :(
0
cs_plateau Messages postés 19 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 3 juillet 2008
6 mai 2008 à 21:23
merci qaund meme
0
cs_vaz Messages postés 3 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 13 février 2010
13 févr. 2010 à 09:03
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).
0
Rejoignez-nous