ASP.NET Repeater ItemDataBound acontecer após o evento PreRender?
-
03-07-2019 - |
Pergunta
Eu tenho um controle de repetidora em um formulário web ASP.NET 2.0.
Como eu entendê-lo, todos os controles ligados a dados da página disparar seus eventos de ligação em algum lugar entre o Page_Load
e os eventos Page_PreRender
.
No entanto, evento ItemDataBound
do meu repetidor parece estar acontecendo após o evento PreRender
.
Como isso é assim e há alguma maneira eu posso acessar os controles de página após todos os eventos ItemDataBound
dispararam?
Atualizações:
-
O Repeater usa um
ObjectDataSource
com o conjuntoDataSourceID
declarativa no controle repetidor. -
A fonte de dados ID ou objeto não é modificado durante todo o ciclo de vida da página.
Solução
ligação de dados declarativa (fonte de dados especificado pela propriedade DataSourceID) ocorre mais tarde do que o evento PreRender. O comportamento que você está observando é por design. Se isto não é o que você precisa, você deve explicitamente vincular seu controle - apenas chamar seu método DataBind.
Outras dicas
Você se liga especificamente sua repetidora (myRepeater.DataBind ();)? Em seu código por trás do arquivo (por exemplo, dentro do evento Page_Load ())
Você verificou o ciclo de vida de eventos ASP.NET? Desculpe se você já sabe disso, mas apenas no caso: http: // MSDN. microsoft.com/en-us/library/ms178472.aspx
Hope isso ajuda.
Ricardo.
Há também um bom post sobre o evento repetidor da seguinte post:
Eu acho que tinha uma situação semelhante, e minha opção era forçar os controles para vincular-se, chamando EnsureChildControls ou algum método similar.