ASP.NET Повторитель ItemDataBound происходит ПОСЛЕ события предварительной отправки?
-
03-07-2019 - |
Вопрос
У меня есть элемент управления повторителем в веб-форме ASP.NET 2.0.
Насколько я понимаю, все элементы управления, привязанные к данным страницы, запускают свои события привязки где-то между Page_Load
и тот Page_PreRender
Мероприятия.
Однако мой ретранслятор ItemDataBound
событие, по-видимому, происходит ПОСЛЕ PreRender
событие.
Как это так и есть ли какой-либо способ, которым я могу получить доступ к элементам управления страницей ПОСЛЕ всех ItemDataBound
события сработали?
Обновления:
Ретранслятор использует
ObjectDataSource
с помощьюDataSourceID
декларативный набор в элементе управления repeater.Идентификатор источника данных или объект вообще не изменяется в течение жизненного цикла страницы.
Решение
Декларативная привязка данных (источник данных, указанный через свойство DataSourceID) происходит позже события предварительной отправки.Поведение, которое вы наблюдаете, разработано специально.Если это не то, что вам нужно, вы должны явно привязать свой элемент управления к данным - просто вызовите его метод DataBind .
Другие советы
Вы специально привязываете свой повторитель (myRepeater.DataBind();) в вашем коде за файлом (например, внутри события Page_Load())?
Вы ознакомились с жизненным циклом событий ASP.NET?Извините, если вы уже знаете это, но на всякий случай: http://msdn.microsoft.com/en-us/library/ms178472.aspx
Надеюсь, это поможет.
Рикардо.
В следующем сообщении в блоге также есть хороший пост о событии repeater :
Я думаю, что у меня была похожая ситуация, и моим вариантом было ЗАСТАВИТЬ элементы управления связать себя, вызвав EnsureChildControls или какой-то подобный метод.