Bonjour,
Dans une page asp j'ai le checkbox suivante:
J'ai en dessous un fieldset comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <asp:CheckBox ID="ishazard" runat="server" OnCheckedChanged="ishazard_CheckedChanged" />
Je veux que lorsque je coche ma checkbox cela rend invisible le fieldset( propriété css visible = false) et quand je décoche il apparait, par défaut c'est en invisible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <fieldset id="panelhazard" runat="server"> <legend> Aléa </legend> ... </fieldset>
J'ai réussis à faire quelque chose mais cela n'est pris en compte que lors de validation de la page.
Voici le code de la fonction ishazard_CheckedChanged associer a l'évenement OnCheckedChanged.
Je voudrais que cela se face donc coté client et non serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 protected void ishazard_CheckedChanged(object sender, EventArgs e) { if (!((CheckBox)sender).Checked) { panelhazard.Visible = false; } else { panelhazard.Visible = true; } }
Pour cela j'ai tenté de faire une fonction javascript qui permet de le faire et avec:
J'ajoute ma fonction javascript a ma checkbox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ishazard.Attributes.Add("OnClick", "showHideHazardForm()");
Dans mon code javascript j'ai voulu faire un getElementById, cela ce fonctionnait pas et en relisant la source de la page, je me suis aperçu que l'asp a changé les noms des id, il a rajouté dans le nom xxxcontentPlaceHolderxxx du au fait que ma page hérite d'une master page je suppose. Le fait est que... Je suis arrivé la et je ne sais pas quoi faire de plus à ce niveau la.
Est-ce qu'il y a un moyen de forcer l'éxécution de ma fonction ishazard_CheckedChanged cote client?
Sinon les ids générés automatiquement sont toujours les mêmes? car si je fais ma fonction javascript avec les ids recuperés de la source et qu'ils changent ensuite cela ne fonctionnera plus.
****************************
Aussi dans la continuité, j'ai deux textbox qui contiennent des nombres, et une troisième qui doit contenir le résultat d'une opération en fonction des deux premières. Je veux que l'affichage soit instantané lorsque l'on modifie l'une ou l'autre des texbox.
Je sais le faire en javascript, avec la propriété OnTextChanged de tête si je ne me trompe pas, appelé sur les deux textbox qui mettent à jour la troisième textbox.
Ma question concerne les ids des texbox qui sont générés par l'asp, puis-je faire ce que j'ai précisé au dessus avec de l'asp éxécuté coté client (ca reviendrait à ce que ce soit l'asp qui me génére le javascript, ca me semble pas super comme idée) ou bien alors comment être sûr des noms de mes ids pour pouvoir intégrer ma fonction depuis une page javascript.
Si je n'ai pas été assez clair n'hésitez pas à me poser des questions.
Partager