Bonjour,

J'essaie de cacher ou afficher un panel en fonction d'un clic sur une balise <legend> de mon code aspx.

Voici ma fonction javascript :

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
<link rel="StyleSheet" type="text/css" href="../Styles/StyleDossierClient.css" />
 
<script type="text/javascript">
function NouveauMessage(){
var nouveauMessage = document.getElementById("_ctl0_ContentPlaceHolder1_Echanges1_pnl_message");
if (nouveauMessage==null) alert("nouveauMessage is null");
if (nouveaMessage.className = "hidden"){
nouveauMessage.className = "visible";
}
else{
nouveauMessage.className = "hidden";
}
}
</script>
 
<fieldset>
<legend onclick="javascript:NouveauMessage()">Nouveau message</legend>
<asp:panel id="pnl_message" runat="server" class="hidden">
...
</asp:panel>
</fieldset>
Avec dans StyleDossierClient.css :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
.hidden{
display:none;
}
 
.visible{
display:inline;
}
L'id de mon panel n'est pas un problème car ce code est contenu dans un contrôle ascx qui est appelé dans une autre page aspx contenant un ContentHolder ... d'où l'id "_ctl0_ContentPlaceHolder1_Echanges1_pnl_message" (d'ailleurs, pas de message "nouveauMessage is null").

Par contre, quand je clic sur "Nouveau message", rien ne se passe. D'ailleurs <gras>l'intellisense ne me proposait pas les méthodes className que j'ai dû forcer</gras>, contrairement à getElementById qui m'était bien proposé.

Auriez-vous une idée ?

Merci