Bonjour tout le monde

Je suis confronté à un souci que je ne maitrise pas car je ne connais pas trés bien la manipulation du ViewState.

Le contexte est un peu complexe mais je vais tenté de faire simple :
je place un GridView dans le HTML et je le rempli par code Behind. Dans ce GRridView j'ai mis un ButtonField qui lance une action que j'ai placé dans une Sub (pour la lisibilité du code)
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
 
Protected Sub OptionParagaphe(ByVal IdCompo As String)
        Dim ddl As New DropDownList
        Dim dtParagraphe As DataTable = New DManager("DataDev").RetournerTable("EXEC dbo.EG_ListeParagraphe '" & Session("SES_ApplicationStr") & "'")
        With ddl
            .ID = "ddlParagraphe"
            .EnableViewState = True
            .DataSource = dtParagraphe
            .DataTextField = "Para_Titre"
            .DataValueField = "ParagrapheId"
            .DataBind()
        End With
 
        Dim lblDDL As New Label
        With lblDDL
            .Text = "Choisir un paragraphe de texte dans la liste "
        End With
        With celOption
            With .Controls
                .Add(lblDDL)
                .Add(New LiteralControl("     "))
                .Add(ddl)
            End With
        End With
 
    End Sub
Comme vous pouvez le voir, cela créer une DDL. C'est elle qui me préoccupe, mais je vais avoir d'autre cas avec d'autres types de contrôles.

Dans mon HTML j'ai également un bouton (qui est jsute en dessous, dans un autre TableRow) de la "CelOption".

En cliquant sur ce bouton j'enregistre les informations qui ont été saisie.

Le problème que j'ai est qu'il n'y a pas de contrôle dans le "CelOption" lorsque je clique sur le bouton à en juger par cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Protected Sub btnEnrOption_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnEnrOption.Click
        Dim btn As Button = sender
        Dim ddl As DropDownList = celOption.FindControl("ddlParagraphe")
ici        Logage(celOption.Controls.Count)
        Dim idCompo As String = btn.CommandArgument
        Dim sel As String = ddl.SelectedValue
 
    End Sub
La ligne de logage me retourne 0.

Du coup, je me suis dis que les infos devaient être dans le ViewState, mais je ne trouve pas comment aller cherche ma DDL dans le ViewState, je ne comprends les explications que je trouve dans la MSDN.

Subsidiairement, est ce le fait de mettre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
            .EnableViewState = True
sur ma DDL est suffisant pour la récupérer ?

Merci pour votre aide.