Récupérer la valeur d'un contrôle dynamiquement créé
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:
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.