Видимость ListBox на стороне сервера с C # и ASP.NET - PullRequest
1 голос
/ 05 мая 2009

Я заинтересован в использовании события onmouseover для отображения и исчезновения списка. Я довольно новичок в ASP.NET и пока не хочу писать javascript. Я пытаюсь использовать следующий код, и часть изменения цвета работает, но видимость списка не работает:

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

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

Я пробовал этот код с «PostBack» и без него, но все равно не повезло. Кто-нибудь видит, где мой код не работает?

Спасибо,

DFM

1 Ответ

2 голосов
/ 05 мая 2009

Попробуйте:

    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'");
    }

Свойство видимости работает немного иначе, чем свойство отображения. Когда для свойства видимости установлено значение «скрытый», элемент скрыт, но компоновка не изменяется, тогда как при установке для свойства отображения значения «нет» элемент полностью удаляется, что может повлиять на макет.

Если вы хотите изменить видимость списка без влияния на макет, вы можете использовать div в качестве оболочки и затем изменить его свойство видимости.

<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" />

Измените ASPX, чтобы переключить свойство видимости элемента div, содержащего список.

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'");
}
...