Я работал в проекте .NET Framework 4, используя серверные теги, такие как <% = what%>, чтобы установить видимость элементов управления runat = "server", например:
<div id="MyId" runat="server" visible="<%=MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
Это работает в Framework 4, но теперь, пытаясь использовать это в проекте Framework 3.5, оно не работает. Это только фреймворк Framework 4? Есть ли самая крутая (и .aspx сторона) альтернатива настройке видимости из codebehind? Я использую некрасивое:
MiId.Visible = MyVisiblePropertyOnCodeBehind
Заранее спасибо,
Tom
[РЕДАКТИРОВАНИЕ] РЕШЕНИЕ:
Спасибо за ваши комментарии, которые помогают мне понять мою проблему и решение!
Это была моя вина во многих вещах.
В проекте VS2010 мы использовали <% # вместо <% = </p>
Кроме того, я не заметил, что в проекте 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 () может снизить производительность приложения. У вас есть представление о том, сколько? Можно ли это понимать как «профессиональную» технику для больших проектов или, как вы думаете, ее следует избегать?
Мне нравится, как разметка читается и легко понимается в одном представлении, но я не хочу быть виновным в медленном коде, потому что это так.