Я работал над проектом .NET Framework 4, используя такие серверные теги, как <%=независимо %>, чтобы установить видимость элементов управления runat="server", например:
<div id="MyId" runat="server" visible="<%=MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
Это работает на платформе 4, но сейчас, пытаясь использовать это в проекте платформы 3.5, похоже, это не работает. Это только функция Framework 4? Есть ли самый крутой (и .aspx) альтернатива настройке видимости из кода программной части? Я использую уродливое:
MiId.Visible = MyVisiblePropertyOnCodeBehind
Заранее спасибо,
Том
[ОТРЕДАКТИРОВАНО] РЕШЕНИЕ:
Спасибо за ваши комментарии, которые помогли мне понять мою проблему и решение!
Это была моя вина более чем в одном.
В проекте VS2010 мы использовали <%# вместо <%=
Также я не заметил, что в проекте VS2010 мы использовали страницы, унаследованные не от “Page”, а от класса CustomPage, это делало привязку автоматически, без моего ведома, и это заставляет меня думать, что это была функция только Framework 4.0.
Как вы сказали здесь, если у вас есть следующая разметка:
<div id="MyId" runat="server" visible="<%# MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
вы можете заставить ее работать, добавив следующее в программный код:
public bool MyVisiblePropertyOnCodeBehind = true;
protected void Page_Load(object sender, EventArgs e) {
DataBind();
// Or if you want only for one control, MyId.DataBind();
}
Как я читал, эта DataBind() может снизить производительность приложения. Вы имеете представление о том, сколько? Можно ли это понимать как «профессиональную» технику для использования в больших проектах, или вы считаете, что ее следует избегать?
Мне нравится, как это делает разметку читабельной и легкой для понимания в одном представлении, но я не хотел бы быть виноватым в медленном коде из-за этого.