Textbox créé dynamiquement

Signaler
Messages postés
5
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
30 août 2006
-
Messages postés
73
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
18 novembre 2010
-
 Bad Brown Fox speaking.

Bonjour à tous,

J'ai généré des textboxs dynamiques (id inclus) en fonction du nombre de ligne retournée par ma requête SQL que je retourne dans un PlaceHolder.

for(int i=0; i < ParamByProg.Count; i++)
   {
       System.Web.UI.WebControls.TextBox myParamTextbox = new System.Web.UI.WebControls.TextBox();    
       System.Web.UI.WebControls.Table myParamTable = new System.Web.UI.WebControls.Table();


       myParamTextbox.ID = String.Format("TxtbParam{0}", i);
       PLHParam.Controls.Add(myParamTextbox);
   }

Suite à cela, je veux que lorsque je cliques sur un bouton, je veux récupérer mes valeurs saisies dans mes textboxs dans une autre page.


private
void BTNLance_Click(
object sender, System.EventArgs e)
{
   PLHParam.FindControl();   <===============================Comment lui donner l'id de contrôle dynamique  et récupérer la valeur de la textbox
   Response.Redirect("Traitement.aspx");
}

Un grand merci a qui peut m'aider. Ca fait un moment que je bloque la dessus.

Merci.

2 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour,

comme repeté plusieurs fois sur ce forum il faut ajouter les controles dynamiques dans le page_init sinon ca ne marchera pas !

pour récuperer les ID tu fais tout simplement plhhParam.FindControl("TxtbParam1") par exemple ...

<hr />Cyril - MVS - MCP
Messages postés
73
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
18 novembre 2010

Tu peux passer par un repeater.

protected void ListeAmis_ItemsDataBound(object sender, RepeaterItemEventArgs e)
{
TextBox Email = (TextBox)e.Item.FindControl("TextBoxEmail");
TextBox Nom = (TextBox)e.Item.FindControl("TextBoxPrenomNom");

Ami tmpAmi = (Ami)e.Item.DataItem;

Email.Text = tmpAmi.Email;
Nom.Text = tmpAmi.PrenomNom;
}

Suite à une action sur un bouton, tu fais ceci pour récupérer les valeurs :

foreach (RepeaterItem tmpAmi in ListeAmis.Items)
{
TextBox Email = (TextBox)tmpAmi.FindControl("TextBoxEmail");
TextBox Nom = (TextBox)tmpAmi.FindControl("TextBoxPrenomNom");
}