Problème de récupération de la valeur Count() d'un arraylist [Résolu]

Signaler
Messages postés
239
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
17 janvier 2013
-
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
-
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.

PascalCmoa
[mailto:pascal.aknouche@free.fr email: PascalCmoa]

1 réponse

Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
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.

GGtry