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

Хорошо, чтобы сделать это быстро:

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

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

установить в шаблоне элемента столбца вида сетки работает как очарование

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

Что дает?

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

ОБНОВЛЕНИЕ: Попробовал

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

Если я не пойму неправильно, <% = сработает в самом КОНЦЕ жизненного цикла asp.net, помешав ему быть полезным в этом контексте.

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам