Bonjour,

Pour les besoins d'un site, je dois créer plusieurs formulaires dynamiquement. Ceux-ci contiennent donc un nombre de champ indéfini, qui sont créés lors du runtime.

Après Postback, donc après avoir validé le formulaire, j'ai besoin de récupérer la valeur des contrôles créés. Or, je n'y arrive pas.

Prenons un exemple simple. Je souhaite créer un formulaire listant tous les clients contenus dans une table de ma base. Pour chaque client, j'affiche son nom suivi d'un contrôle checkbox ayant pour ID l'ID du client dans la base.

L'utilisateur peut cocher n'importe quelle checkbox. Après validation du formulaire, j'ai besoin de recupérer la valeur de la checkbox (Checked = True ou False). Je parcoure donc l'ensemble des contrôles à coup de foreach.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Public Sub IterateThroughChildren(ByVal parent As Control)
        For Each c As Control In parent.Controls
            If (c.GetType().ToString() = "System.Web.UI.WebControls.CheckBox") Then
                Dim che As CheckBox = c
                // Traitement
            End If
            If (c.Controls.Count <> 0) Then
                IterateThroughChildren(c)
            End If
       Next
End Sub
L'ensemble des CheckBox est correctement récupéré, mais leur valeur est toujours égale à False, que la checkbox en question ait été cochée ou non.

Si quelqu'un a une solution pour résoudre mon problème (en C# ou VB.NET, peu importe), je suis preneur.

Merci par avance.