Frage

Ich habe ein Repeater-Steuerelement auf einem ASP.NET 2.0 Web-Formular.

Wie ich es verstehen, die alle datengebundenen Seite Kontrollen feuern ihre Bindungsereignisse irgendwo zwischen dem Page_Load und den Page_PreRender Ereignisse.

Allerdings scheint mein Repeaters ItemDataBound Ereignis nach dem PreRender Ereignisse zu geschehen.

Wie ist das so und ist es eine Möglichkeit, die Seite Steuerelemente zugreifen können, nachdem alle ItemDataBound Ereignisse ausgelöst haben?

Updates:

  • Der Repeater verwendet einen ObjectDataSource mit den DataSourceID deklarativen im Repeater-Steuerelement gesetzt.

  • Die Datasource-ID oder ein Objekt überhaupt während der Seite Lebenszyklus.

  • nicht geändert
War es hilfreich?

Lösung

deklarative Datenbindung (Datenquelle über die DataSourceID Eigenschaft angegeben) tritt später als das PreRender Ereignis. Das Verhalten, das Sie beobachten ist konstruktionsbedingt. Wenn dies nicht das, was Sie brauchen Sie ausdrücklich Ihre Kontrolle Databind sollte - nur seine DataBind Methode aufrufen.

Andere Tipps

Bindung Sie gezielt Ihre Repeater (myRepeater.DataBind ();) im Code hinter Datei (zum Beispiel innerhalb der Page_Load () Ereignis)

?

Haben Sie den ASP.NET Ereignisse Lebenszyklus aus? Sorry, wenn Sie bereits wissen, dies aber nur für den Fall: http: // msdn. microsoft.com/en-us/library/ms178472.aspx

Hoffe, es hilft.

Ricardo.

Es gibt auch einen guten Beitrag über Repeater Ereignis im folgenden Blog-Post:

Linkbutton, Etikett innerhalb Repeater - ASP.NET

Ich denke, dass ich eine ähnliche Situation hatte, und meine Wahl war, die Kontrollen zu zwingen, sich zu binden, durch EnsureChildControls oder eine ähnliche Methode aufrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top