Member 10112611 Ответов: 1

Как установить видимое свойство элемента управления динамически в ASP.NET


У меня есть выпадающее окно,которое должно быть видно, если переменная, определенная в моем файле класса, имеет значение true, иначе false.

Что я уже пробовал:

на моей странице general.cs
public static class myCommonvar

{

public static bool isVisible  
    {
        get
        {
            return false;
        }
    }
}

На странице asp, где мой asp.net контроль существует, я попробовал следующий код
<asp:DropDownList ID="ddlcompanies"  runat="server" AutoPostBack="True"  Visible="<%# myCommonvar.isVisible %>"  >
										<asp:ListItem Value="0" class="menu-dropdown">View Clients</asp:ListItem>
										<asp:ListItem Value="1" class="menu-dropdown">in line clients/asp:ListItem>
										<asp:ListItem Value="2" class="menu-dropdown">Ext clients</asp:ListItem>
									</asp:DropDownList>


но не работает
Кто-нибудь может мне помочь, пожалуйста.

Karthik_Mahalingam

поскольку свойство имеет только параметр get и всегда возвращает false, нет смысла использовать это свойство. непосредственно вы можете жестко закодировать видимость в false.

Member 10112611

Извините,это не так, я имею в виду.. эта страница cs варьируется от клиента к клиенту . Применение будет таким же. Для некоторых клиентов isVisible будет истинным, а для некоторых клиентов-ложным. Кроме того, у меня есть 6 или 7 страниц, где я должен применить видимость, основанную на значении isVisible.

Karthik_Mahalingam

Используйте кнопку ответить для публикации комментариев, чтобы пользователь получил уведомление

1 Ответов

Рейтинг:
9

F-ES Sitecore

Синтаксис <%# %> предназначен для случаев, когда компонент привязан к базе данных. Поскольку вы устанавливаете элементы списка вручную, компонент никогда не "привязывается", поэтому вам все равно нужно запустить привязку данных в коде позади, чтобы свойство visible работало, даже если оно вам не нужно для listitems.

protected void Page_Load(object sender, EventArgs e)
{
    ddlcompanies.DataBind();
}


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


Member 10112611

Спасибо , это сработало.