Видимость списка на стороне сервера с помощью C # и ASP.NET

StackOverflow https://stackoverflow.com/questions/822878

  •  03-07-2019
  •  | 
  •  

Вопрос

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

if (! Является обратной отправкой) { Кнопка 2.Атрибуты.Добавить("onmouseover", "this.style.backgroundColor='Красный', ListBox3.style.visibility='видимый'");}

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

Я пробовал этот код с "обратной отправкой" и без нее, и по-прежнему безуспешно.Кто-нибудь видит, где мой код подводит меня?

Спасибо,

DFM

Это было полезно?

Решение

Попробуй:

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

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

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

<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'");
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top