Accueil > Forum > > > > Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack
Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack
jeudi 29 juin 2006 à 10:54:48 |
Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

zarzar
|
j'ai un problème, j'ai vu qu'il était fréquent mais je ne parviens pas à appliquer les solutions adéquates trouvées je crée des contrôles dynamiques que je place dans un placeholdertout s'affiche bien une 1ère fois, mais au clic sur un bouton (provoquant donc un postback), je perds tout pourtant, suite à ce que j'ai lu sur le sujet, j'appelle ma méthode de génération du formulaire dans la méthode Page_Initje suis cependant obligé de "protéger" ceci avec un boolean pour ne passer qu'une seule fois (sinon je me tappe une exception disant en gros : controle déjà existant avec le même ID) extrait : protected void Page_Init(object sender, EventArgs e) { if (genForm) // ce bool est init à true { ... generateForm(); // méthode qui comporte les "PlaceHolder1.Controls.Add(...)" .... genForm = false; // bool passe à false, j'ai mis ça par rapport à ce que je disais plus haut... } } pas moyen que ça marche pr le moment tout aide serait la bienvenue..... (vraiment  ) merki 
|
|
jeudi 29 juin 2006 à 11:01:36 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

preti
|
Pourquoi tu n'utilises pas le page_Load ??
|
|
jeudi 29 juin 2006 à 11:04:24 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

zarzar
|
essayé aussi, même comportement 
|
|
jeudi 29 juin 2006 à 11:07:47 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

preti
|
dans ton page load tu as donc juste l appel à ta fonction cela devrait fonctionner... si tu mets juste cette appelle il t'affiche rien ?? tu as essayé de faire du debugging afin de voir si il rentre bien dans ta fonction ??
|
|
jeudi 29 juin 2006 à 11:10:26 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

zarzar
|
si je fais qqch du style : protected void Page_Load(object sender, EventArgs e) { generateForm(); }
j'ai mon formulaire une 1ère fois, puis au clic : Plusieurs contrôles avec le même ID 'lbSfField0' ont été trouvés. etc....
|
|
jeudi 29 juin 2006 à 11:12:31 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

preti
|
peux tu me donner ta fonction ??
|
|
jeudi 29 juin 2006 à 11:20:36 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

zarzar
|
attention elle est pas petite !  en fait pr détailler, je crée des HtmlTable (avec des Rows puis des Cells) et dedans je dépose mes contrôles asp certains objets (ex describeSObjectResults sont dans mon code en static, je l'ai tjs) private void generateForm() {
DropDownList ddl; Label lb; CheckBox cbMandatory; TextBox tbDefaultValue; DropDownList ddlDefaultValue; CheckBox cbDefaultValue;
HtmlTable tbl; HtmlTableRow row; HtmlTableCell cell;
for (int x = 0; x < describeSObjectResults.Length; x++) { tbl = new HtmlTable(); row = new HtmlTableRow(); cell = new HtmlTableCell("th"); cell.Controls.Add(new LiteralControl("Salesforce field")); row.Cells.Add(cell); cell = new HtmlTableCell("th"); cell.Controls.Add(new LiteralControl("File field")); row.Cells.Add(cell); cell = new HtmlTableCell("th"); cell.Controls.Add(new LiteralControl("Mandatory")); row.Cells.Add(cell); cell = new HtmlTableCell("th"); cell.Controls.Add(new LiteralControl("Default value")); row.Cells.Add(cell);
tbl.Rows.Add(row);
for (int i = 0; i < describeSObjectResults[x].fields.Length; i++) { if ((describeSObjectResults[x].fields[i].createable || describeSObjectResults[x].fields[i].name == "Id") && !fieldsToBeHiddenAl.Contains(describeSObjectResults[x].fields[i].name)) // (Sf field is creatable or is an ID) and not in the "ToBeHidden" list { row = new HtmlTableRow();
// Salesforce field lb = new Label(); lb.ID = "lbSfField" + i; if (describeSObjectResults[x].fields[i].label.EndsWith("ID") && describeSObjectResults[x].fields[i].name != "Id") { lb.Text = describeSObjectResults[x].fields[i].label.Replace(" ID", ""); } else { lb.Text = describeSObjectResults[x].fields[i].name; } cell = new HtmlTableCell(); cell.Width = "150px"; cell.Align = "right"; cell.Controls.Add(lb); row.Cells.Add(cell); lb.Dispose();
// File field ddl = new DropDownList(); ddl.ID = "ddlFileFields" + i; ddl.Items.Add("-- none selected --"); for (int j = 0; j < fileFields.Count; j++) { ddl.Items.Add(fileFields[j].ToString()); }
cell = new HtmlTableCell(); cell.Controls.Add(ddl); row.Cells.Add(cell); ddl.Dispose();
// Mandatory cbMandatory = new CheckBox(); cbMandatory.ID = "cbMandatory" + i; cell = new HtmlTableCell(); cell.Align = "center"; cell.Controls.Add(cbMandatory); row.Cells.Add(cell); cbMandatory.Dispose();
// je t'épargne ici, un gros switch qui n'apporterait rien au sujet
row.Cells.Add(cell);
// tbl.Rows.Add(row); } } PlaceHolder1.Controls.Add(tbl); } }
|
|
jeudi 29 juin 2006 à 12:45:29 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

jesusonline
|
Bonjour, il faut effectivement mettre tout dans le page_init pour construire l'arbre des controles convenablement ! Par contre je ne comprend pas le problème, à quoi sert le boolean ? t'es sur qu'il est à true lors du deuxieme passage ? ta fonction est bien appellé, vérifie en mettant un point d'arret Cyril - MVS - MCP
|
|
jeudi 29 juin 2006 à 14:13:56 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

zarzar
|
mais si je mets juste protected void Page_Init(object sender, EventArgs e) { generateForm(); }
la deuxième fois il repasse dans generateForm, et ensuite je me prends Plusieurs contrôles avec le même ID 'lbSfField0' ont été trouvés. FindControl requiert que les contrôles aient des ID uniques.
(lbSfField0 c'est le mieux controle)
c'est logique en fait je trouve
dnc le truc super bizarre, c'est qu'il "garde" les controles (au sens ou si je repasse dans ma génération, il ne peut pas recréer des controles avec les memes id), mais il veut pas me les afficher apres le postback le placeholder est vide (count à 0)
c'est dingue trop mal foutu qd meme ces controles dynamiques, non ?
|
|
jeudi 29 juin 2006 à 16:51:53 |
Re : Contrôles dynamiques dans un PlaceHolder qui disparaissent au PostBack

zarzar
|
Réponse acceptée !
problème résolu il y avait un soucis dans les id des controles générés un détail mais qui faisait tout planter au 2ème affichage merci bcp pr l'aide
|
|
Cette discussion est classée dans : méthode, contrôles, dynamiques, postback, placeholder
Répondre à ce message
Sujets en rapport avec ce message
Contrôles dynamiques [ par ja001net ]
Bonjour, J'aimerais créer des contrôles serveur dynamiquement en fonction d'un chiffre entré dans un précédent formulaire (créer 5 TextBox p
Calendrier OutLook [ par groovy ]
Bonjour,Quelqu'un connaîtrait-il une méthode permettant d'envoyer depuis une page ASP un rendez-vous OutLook à un utilisateur. Celui-ci n'aurait qu'à
Datagrid et champs dynamiques : mémoire ? [ par theoorleans45 ]
Bon, j'ai encore un soucis de programmation. Je vais essayer d'être précis et bref dans la description de ce que je veux et ce que j'ai fait.Dans une
Avis Authentification Utilisateur: Méthode [ par liliemumue ]
BonjourToujorus su r mon site Web , je m'apprête àprésent à intégrer l'authetification utilisateur afin que mes visiteurs puissent créer des comptes e
PlaceHolder et UserControl [ par edokt ]
Salut tout le monde J'ai un petit problem que je comprends pas J'ai un user control que je charge dans un placeholder en utilisant un bouton "Charger"
Comment gérer la localisation des login, createuserwizards... [ par mdemo ]
Bonjour,Mon site utilise des ressources locales et globales pour gérer plusieurs langues. Je viens de mettre en place tout l'aspect login, passwordrec
Treeview & PostBack [ par oxayotl ]
Bonjour,j'aurai voulu savoir s'il était possible et si oui comment désactiver les liens correspondant aux checkbox d'un treeview.
Conseils sur accès aux données [ par mdemo ]
Bonjour,Je travaille sur un site qui risque d'héberger pas mal de données uploadées par les membres. Ces membressont repérés par le UserId généré par
GetCallBackResult() [ par cyclotor ]
Bonjour à tous,J'essai d'implémenter l'interface ICallbackEventHandler et ça marche très lorsque je veux rafraîchir un composant WEB de ma form. Mais
action sur le postback [ par wally88 ]
Bonjour, j'ai une dropdownlist et souhaiterais faire une action lors du postback. Et forcement je trouve pas :/ Une petite aide? :DMerci.
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
RE : FORMULAIRERE : FORMULAIRE par Megafan
Cliquez pour lire la suite par Megafan FORMULAIREFORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|