Recuperation de donnée formulaire

Signaler
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour,

je genere dynamiquement des webcontrols dans un formulaire.
Mais lorsque je valide le formulaire, comment faire pour recuperer toutes les valeurs des champs ?

j'ai essayé les foreach(Control oControl in Page.Controls){ mais les webcontrols dynamique ne s'affichent pas?!?

merci

14 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
J'ai mis une source recemment qui je pense pourrait t'aider :
http://www.aspfr.com/code.aspx?ID=21286

Cyril (Alias Jesusonline)
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

je ne vois comment tu arrives a parcourir tout les controls qui sont dans le placeholder ?

car dans mon cas je valide un formulaire ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Je comprend pas la question

Cyril (Alias Jesusonline)
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

mon probleme est que j'ai genere tout mes webcontols dans mon placeHolder et je n'arrive pas a les recuperer lorsque je valide mon formulaire.
comment je peux le parcourir ? et acceder au webcontrols genéré ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Tu veux le parcourir apres validation je suppose. Tout est pourtant expliqué dans ma source je pense.

Pour faire ce que tu veux tu fais :
LeTextBox = CType(Page.FindControl("TonTextbox" & i), TextBox)

si tu as generé plusieurs controles il ne faut pas oublier de mettre une ID pour chaque controle :

MonTextBox.ID = "TonTextbox" & i

si tu veux tout les controles tu n'as qu'a faire comme j'ai fait sur la source, tu cherches tout les controles de 0 à i

si ca fait tj pas ce que tu veux donne moi un exemple de code pour que je puisse mieux comprendre.

Cyril (Alias Jesusonline)
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

je vais essayer ce que tu me dis et te tenir au courant.

mais je me pose une question, pourquoi lorsque je fais un foreach(Control oControl in Page.Controls) ca ne me liste pas les webcontrol de mon placeHolder ?!?
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

Non ca ne marche pas non plus, impossible d'y acceder.

mon code en gros :

J'ai une class avec une methode qui genere les web controls dont en voila un bout :

oTextBox = new TextBox();
oTextBox.ID = cKeyValue.ToString();
oTextBox.Text = arrParamTable[3];
Table1.Rows[nI].Cells[0].Controls.Add(oLabel);
Table1.Rows[nI].Cells[1].Controls.Add(oTextBox);

ceci est ds une boucle, et rajoute des textbox dans une table.

Puis ds ma page aspx :

oSortedList.Add("1-Libellé-libelle-" + cLibelle,"text");
qui constitue un tableaux designant le label du webcontrol, l'id, type du webcontrol......

myHolder.Controls.Add(oGen.generateEdit(oSortedList));
Page.DataBind();

Puis le tableau HTML généré sera mis dans le placeHolder.

Voila, et quand je valide, impossible d'acceder aux webcontrols du placeHolder.

voila tu sais tout
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Je dois etre bete mais je comprend pas et je vois pas l'erreur c'est surement du que je n'ai pas entierement toute la source, je crois que tu travail avec VS.net ? tu pourrais m'envoyer ton projet par mail (contact moi par les messages privé pour l'avoir) car la j'ai du mal à comprendre.

Moi non plus j'arrive pas à avoir accés au control ajouté dans le placeholder mais si tu connais cKeyValue tu as juste à faire page.findcontrol(cKeyValue) il faut bien sur que cKeyValue soit unique. Une petite astuce qui pourrait t'aider : dans la directive de la page mais l'attribut trace=true ca pourrait eventuellement t'aider

@+

Cyril (Alias Jesusonline)
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

en faite que tu es le code ou pas, le pb reste le meme, c'est que je ne peux pas acceder aux differents controls de mes placeholder, meme avec un findcontrol().

je deviens fou, mais merci a toi ;o)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Envoie moi quand meme le code (si possible) j'aime bien comprendre et trouver une solution, donc si tu dis que tu ne peux pas acceder au control, c'est qu'il y a un problème, donc j'aimerais bien avoir la totalité du code pour essayer de comprendre ce problème

Cyril (Alias Jesusonline)
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

ca y est c bon, j'avais mal declaré mon placeholder.
cool

merci a toi en tout cas
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
ouf c'est une bonne nouvelle :)

Cyril (Alias Jesusonline)
Messages postés
344
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
4 avril 2011
1
Il n'y a pas moyen de se passer du placeHolder ?
je trouve contraignant de devoir placer ce composant à chaque fois que l'on veut creer un composant en dynamique.

;)
David, à VERSAILLES
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
en quoi est-ce contraignant ?
il y bien une autre méthode mais elle est moins joli, et on a moins de controle sur ou les controles se placent :
page.controls.add(c)

Cyril