Теги сервера не работают внутри элементов управления asp
Отлично, чтобы сделать это быстро:
- я хочу установить даты начала и окончания для расширителя календаря динамически при изменении или загрузке страницы
- значения помещаются в скрытые поля на экране .ascx и заполняется во время загрузки страницы в if not postback
- один набор календарных расширителей находится в поле шаблона элемента представления сетки вызовите этот набор
- остальные в обычной HTML-таблицы - в
Множество a и множество b имеют флаги StartDate="<%# hfStart.value%>" EndDate="<%# hfEnd.value%>"
Установка в шаблоне элемента столбца представления сетки работает как очарование
Набор b В таблице HTML не работает вообще
Что дает?
До сих пор я пробовал другие теги сервера с тем же кодом внутри, но я, очевидно, упускаю важную деталь. Почему одно работает, а другое нет?
Обновление: пробовал
-
CDate(hfstart.value).ToString
с тегами <%= hfstart.value %>
Если я не ошибаюсь,
2 ответа:
Как оказалось, вам нужно использовать
<%# %>
в тегах asp, как и другие, такие как<% %>
и<%= %>
, выполняемые в конце ASP.NET жизненный цикл и получить выплюнуть буфер бог знает куда. Однако при использовании<%# %>
управление asp должно бытьDataBound();
в соответствующее время.Это происходит автоматически для элементов управления, смоделированных в тегах
<item template>
в gridview, потому что все в gridview связано с его командойgridview.DataBound()
.
Может быть, это потому, что вы используете теги
<%# %>
, которые предназначены для привязки данных? Это объясняет, почему они работают в GridView, потому что он поддерживает привязку данных.Однако в базовой таблице HTML вы должны использовать теги
<% %>
вместо этого, или<%= %>
для вызова метода.Для получения полной информации о типах тегов, попробуйте эту ссылку.