ASP.NET Repeater ItemDataBound NACH PreRender Ereignis passiert?
-
03-07-2019 - |
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 denDataSourceID
deklarativen im Repeater-Steuerelement gesetzt. -
Die Datasource-ID oder ein Objekt überhaupt während der Seite Lebenszyklus.
nicht geändert
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:
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.