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 conjunto DataSourceID declarativa no controle repetidor.

  • A fonte de dados ID ou objeto não é modificado durante todo o ciclo de vida da página.

Foi útil?

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:

LinkButton, Etiqueta no interior Repeater - ASP.NET

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top