yo
Je créé des listes descendantes dynamiquement (suite a une requete SQL) dans ma page. Leur nom m'est inconnu dans l'absolu, il est défini au fur et a mesure que je parcours mon resultat SQL.
Comment faire pour recuperer la valeur de mes listes ? Elles sont ajoutées dans un < div > mais je n'arrive pas a les atteindre.
Extrait de code MaPage.aspx :
<div id="param2" runat="server"> </div>
Extrait de code MaPage.VB :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| For Each row As DataRow In datas.Rows
name = row(0) ' enregistrer le nom du parametre
value = row(1) ' enregistrer la valeur du parametre
If name <> old_name Then
' Nouveau parametre
If nb > 1 Then
' Ajout de la liste a la page
Me.param2.Controls.Add(List)
End If
' Reset des variables
old_name = name
nb = 1
List = New System.Web.UI.WebControls.DropDownList()
List.ID = name
List.AutoPostBack = False
List.AppendDataBoundItems = True
List.Items.Add(New System.Web.UI.WebControls.ListItem("All")) ' Ajout d'un element "Tous" a la liste
List.Items.Add(New System.Web.UI.WebControls.ListItem(value))
Else
' Meme parametre => Ajouter a la liste temporaire
List.Items.Add(New System.Web.UI.WebControls.ListItem(value))
nb = nb + 1
End If
Next |
Le but du jeu :
Parcourir un ensemble de nom/valeur, lorsque l'on a plusieurs valeur pour un meme nom => afficher une liste pour permettre a l'utilisateur de choisir une valeur.
Le probleme :
Je n'arrive pas a lire la valeur de mes listes une fois la page chargée. J'ai essayé :
1 2 3
| For Each ctrl As System.Web.UI.LiteralControl In Me.param2.Controls
value = DirectCast(ctrl, System.Web.UI.WebControls.DropDownList).SelectedItem.Value
Next |
mais ca ne marche pas. Pas plus que :
1 2 3 4 5 6 7
| For Each ctrl As System.Web.UI.LiteralControl In Me.param2.Controls
value = ctrl.ID.ToString
If Not value Is Nothing Then
ctrl2 = Me.param2.FindControl(value)
value = DirectCast(ctrl2, System.Web.UI.WebControls.DropDownList).SelectedItem.Value
End If
Next |
Les variable ctrl et ctrl2 restent pathétiquement a "Nothing"
Merci d'avance pour votre aide
Partager