2009-05-05 5 views
1

Je suis intéressé par l'utilisation d'un événement "onmouseover" pour faire apparaître et disparaître une listbox. Je suis assez nouveau avec ASP.NET et je ne veux pas encore écrire javascript. Je suis en train d'utiliser le code suivant, et la partie de changement de couleur de celui-ci fonctionne, mais la visibilité listbox ne fonctionne pas:Visibilité de ListBox côté serveur avec C# et ASP.NET

if (! IsPostBack) { Button2.Attributes.Add (« onmouseover », " this.style.backgroundColor = 'Rouge', ListBox3.style.visibility = 'visible' "); }

 if (!IsPostBack) 
     { 
      Button2.Attributes.Add("onmouseout", "this.style.backgroundColor='Blue', ListBox3.style.visibility='hidden'"); 
     } 

J'ai essayé ce code avec et sans "PostBack", et toujours pas de chance. Est-ce que quelqu'un voit où mon code me manque?

Merci,

DFM

Répondre

2

Essayez:

if (!IsPostBack) 
    { 
     btnHide.Attributes.Add("onmouseout", "this.style.backgroundColor='Blue';ListBox3.style.display='none'"); 
     btnShow.Attributes.Add("onmouseover", "this.style.backgroundColor='Red';ListBox3.style.display='block'"); 
    } 

La propriété de visibilité fonctionne un peu différemment que la propriété d'affichage. Lorsque la propriété visibility est définie sur 'hidden', l'élément est masqué mais la mise en page n'est pas affectée, alors que lors de la définition de la propriété display 'none', l'élément est complètement supprimé, ce qui peut affecter la mise en page.

Si vous souhaitez modifier la visibilité de la liste sans affectant la disposition, vous pouvez utiliser div comme enveloppe, puis modifier sa propriété de visibilité.

<div id="wrapper">   
    <asp:ListBox ID="ListBox3" runat="server"></asp:ListBox>    
</div> 
<asp:Button ID="btnShow" runat="server" Text="Button" /> 
<asp:Button ID="btnHide" runat="server" Text="Button" /> 

Modifier l'ASPX pour basculer la propriété de visibilité de l'élément div qui contient la zone de liste.

if (!IsPostBack) 
{ 
    btnHide.Attributes.Add("onmouseout", "this.style.backgroundColor='Blue';wrapper.style.visibility='hidden'"); 
    btnShow.Attributes.Add("onmouseover", "this.style.backgroundColor='Red'; wrapper.style.visibility='visible'"); 
} 
+1

Merci pour la réponse rapide. Savez-vous ce que je voudrais utiliser pour le faire réapparaître, ... ListBox3.style.display = ")? –

+0

Ive l'a inclus dans ma réponse ListBox3.style.display = 'bloquer' – Phaedrus

+0

Merci encore - Je viens essayé, et après avoir changé la propriété visible de la listbox à vrai, votre solution a fonctionné Merci, –

Questions connexes