Повторитель ASP.NET ItemDataBound происходит ПОСЛЕ события PreRender? - PullRequest
9 голосов
/ 20 октября 2008

У меня есть элемент управления повторителем в веб-форме ASP.NET 2.0.

Насколько я понимаю, все связанные с данными элементы управления страницы запускают свои события привязки где-то между Page_Load и Page_PreRender событиями.

Однако, событие моего повторителя ItemDataBound, похоже, происходит ПОСЛЕ события PreRender.

Как это так и есть ли способ получить доступ к элементам управления страницы ПОСЛЕ того, как сработали все события ItemDataBound?

Обновление:

  • Ретранслятор использует ObjectDataSource с декларативным набором DataSourceID в элементе управления ретранслятором.

  • Идентификатор или объект DataSource вообще не изменяются в течение жизненного цикла страницы.

Ответы [ 4 ]

7 голосов
/ 21 октября 2008

Декларативное связывание данных (источник данных, указанный в свойстве DataSourceID) происходит позже, чем событие PreRender. Поведение, которое вы наблюдаете, разработано. Если это не то, что вам нужно, вы должны явно привязать данные к своему элементу управления - просто вызовите его метод DataBind.

1 голос
/ 13 июня 2009

В следующем сообщении в блоге также есть хороший пост о репитерном событии:

LinkButton, метка внутри повторителя - ASP.NET

1 голос
/ 20 октября 2008

Вы специально привязываете свой ретранслятор (myRepeater.DataBind ();) в своем файле кода (например, внутри события Page_Load ())?

Вы проверяли жизненный цикл событий ASP.NET? Извините, если вы уже знаете это, но на всякий случай: http://msdn.microsoft.com/en-us/library/ms178472.aspx

Надеюсь, это поможет.

Рикардо.

0 голосов
/ 20 октября 2008

Я думаю, что у меня была похожая ситуация, и я мог принудительно связать элементы управления, вызвав EnsureChildControls или какой-либо подобный метод.

...