dropdownlist disabled clientSide, plus de valeur ServeurSide
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
Code:
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" /> |
text.aspx.vb
Code:
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 |
Voila, si je n'execute pas le "ClientScript...." tout fonctionne correctement.
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:
Code:
1 2
|
v_btnValider.Attributes.Add("onclick", "document.getElementById('" & v_ListboxPays.ClientID & "').disabled = false;") |
....mais bon ca reste du bidouillage, pas terrible donc.
Si quelqu'un a une explication sur ce comportement, ou bien quelconque autre information je suis preneur.