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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<div id="param2" runat="server"> </div>
Extrait de code MaPage.VB :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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é :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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