Bonjour à tous,
un petit problème viens de surgir : les actions effectuées coté client influent sur le comportement coté serveur. Je m'explique :
Je remplie une DropDownList coté serveur a la creation de la page, lui affecte les bonnes valeurs .... jusque là tout va bien.
Coté CLIENT, je met la propriété 'disabled' de la dropdownlist à 'true'.
Lors du postback, un response.write de la valeur de la DropDownList ne renvoie rien.
Voici le morceau ce code
test.aspx
text.aspx.vb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <asp:DropDownList ID="v_ListboxPays" runat="server" EnableViewState="true" AutoPostBack="true"></asp:DropDownList> <asp:Button runat="server" ID="v_btnValider" Text="valider" />
Voila, si je n'execute pas le "ClientScript...." tout fonctionne correctement.
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 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Response.Write(Server.UrlEncode("&")) Dim v_strScript As String = String.Empty If Not IsPostBack Then fillListBoxPaysAll(v_ListboxPays) For Each v_item As ListItem In v_ListboxPays.Items If v_item.Value = "41" Then v_item.Selected = True End If Next v_strScript &= "document.getElementById('" & v_ListboxPays.ClientID & "').disabled = true;" & vbCrLf ClientScript.RegisterStartupScript(Me.GetType, "test", v_strScript, True) End If End Sub Protected Sub v_btnValider_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles v_btnValider.Click Response.Write("pays : " & v_ListboxPays.SelectedValue) End Sub
Dans le cas contraire, je ne recupere aucune valeur.
J'ai déjà une solution, je remet la propriété disable à false juste avant le postaback avec le morceau de code suivant dans le pageLoad:
....mais bon ca reste du bidouillage, pas terrible donc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 v_btnValider.Attributes.Add("onclick", "document.getElementById('" & v_ListboxPays.ClientID & "').disabled = false;")
Si quelqu'un a une explication sur ce comportement, ou bien quelconque autre information je suis preneur.
Partager