Установите свойство Visible с тегом сервера <%= %> в Framework 3.5

Я работал над проектом .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() может снизить производительность приложения. Вы имеете представление о том, сколько? Можно ли это понимать как «профессиональную» технику для использования в больших проектах, или вы считаете, что ее следует избегать?

Мне нравится, как это делает разметку читабельной и легкой для понимания в одном представлении, но я не хотел бы быть виноватым в медленном коде из-за этого.

53
задан tomasofen 10 March 2012 в 18:36
поделиться