PascalCmoa
Messages postés239Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention17 janvier 2013
-
16 sept. 2008 à 14:38
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 2010
-
16 sept. 2008 à 20:15
Bon je viens de solutionner une partie de mon précedent problème.
Pour ajouter mes controles les uns à coté des autres, j'utilise un control de type litéral.
Voici mon code pour ajouter de nouveaux controles
...
Public lesCriteres As New ArrayList() ' Arraylist déclaré comme variable globale.
...
Protected Sub btnAjout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAjout.Click
'Je récupère le nombre d'onjets stockés dans mon arraylist
Dim monID As Integer = lesCriteres.Count() + 1
lesCriteres.Add(createListOperation(monID)) ' Fonction permettant de créer une radioliste
lesCriteres.Add(createListeCriteres(monID)) ' Fonction permettant de créer une listbox
lFor Each valeur As String In lesCriteres 'lesCriteres
lblControl.Text &= valeur
Next
End Sub
Les controles s'affiches correctement.Le problème est que mes nouveaux controles on tous le même identifiant. Je pensais pouvoir obtenir à chaque fois que je place mes controle dans le arraylist un count qui s'incrémente, et donc placer cette valeur comme identifiant pour mes nouveaux controles ainsi créés.
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 16 sept. 2008 à 20:15
Bonsoir,
C'est normal. Le fait d'utiliser une variable globale n'empêche pas qu'elle soit remise à zéro à chaque postback, donc à chaque fois que tu fais ton click.
D'autre part, si je comprends bien ce que tu fais, je ne suis pas sûr que cela soit la meilleure méthode :
si même tu ajoutes un id sur les contrôles ajoutés en html dans le literal, tu ne pourras pas les récupérer ensuite dans ton code, puisque tu ne peux pas mettre runat server dessus.