Теги сервера не работают внутри элементов управления asp


Отлично, чтобы сделать это быстро:

  • я хочу установить даты начала и окончания для расширителя календаря динамически при изменении или загрузке страницы
  • значения помещаются в скрытые поля на экране .ascx и заполняется во время загрузки страницы в if not postback
  • один набор календарных расширителей находится в поле шаблона элемента представления сетки вызовите этот набор
  • остальные в обычной HTML-таблицы - в

Множество a и множество b имеют флаги StartDate="<%# hfStart.value%>" EndDate="<%# hfEnd.value%>"

Установка в шаблоне элемента столбца представления сетки работает как очарование

Набор b В таблице HTML не работает вообще

Что дает?

До сих пор я пробовал другие теги сервера с тем же кодом внутри, но я, очевидно, упускаю важную деталь. Почему одно работает, а другое нет?

Обновление: пробовал

  • CDate(hfstart.value).ToString с тегами
  • <%= hfstart.value %>

Если я не ошибаюсь,

2 2

2 ответа:

Как оказалось, вам нужно использовать <%# %> в тегах asp, как и другие, такие как <% %> и <%= %>, выполняемые в конце ASP.NET жизненный цикл и получить выплюнуть буфер бог знает куда. Однако при использовании <%# %> управление asp должно быть DataBound(); в соответствующее время.

Это происходит автоматически для элементов управления, смоделированных в тегах <item template> в gridview, потому что все в gridview связано с его командой gridview.DataBound().

Может быть, это потому, что вы используете теги <%# %>, которые предназначены для привязки данных? Это объясняет, почему они работают в GridView, потому что он поддерживает привязку данных.

Однако в базовой таблице HTML вы должны использовать теги <% %> вместо этого, или <%= %> для вызова метода.

Для получения полной информации о типах тегов, попробуйте эту ссылку.