Серверные теги не работают внутри элементов управления 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 вы должны использовать <% %>
вместо тегов или <%= %>
вызвать метод.
Для получения полной информации о типах тегов, попробуйте эту ссылку.