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)
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.
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
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 :
La ligne de logage me retourne 0.
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
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
sur ma DDL est suffisant pour la récupérer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part .EnableViewState = True
Merci pour votre aide.
Partager