ASP.NET Repeater ItemDataBound geschieht NACH dem PreRender-Ereignis?
Habe ich ein repeater-Steuerelement auf einer ASP.NET 2.0 web-Formular.
Als ich verstehen es, alle von der Seite Daten gebundene Steuerelemente Feuer Ihre verbindliche Ereignisse, die irgendwo zwischen Page_Load
und die Page_PreRender
Veranstaltungen.
Aber mein repeater ist ItemDataBound
Fall zu sein scheint, passiert NACH der PreRender
Veranstaltung.
Wieso ist das so und gibt es eine Möglichkeit, ich kann auf die Seite zugreifen, steuert NACH all den ItemDataBound
Veranstaltungen gefeuert haben?
Updates:
-
Der Repeater verwendet eine
ObjectDataSource
mit derDataSourceID
deklarativen Satz in das repeater-Steuerelement. -
Die DataSource-ID oder Objekt wird nicht geändert bei den page life-cycle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deklarative Datenbindung (datasource angegeben über der DataSourceID-Eigenschaft) erfolgt später als das PreRender-Ereignis. Das Verhalten, das Sie beobachten, ist durch das design. Wenn dieses nicht ist, was Sie brauchen, sollten Sie explizit databind Ihrer Kontrolle - nur rufen die DataBind-Methode.
Sind Sie ausdrücklich verbindlich Ihre repeater (myRepeater.DataBind();) im code-behind-Datei (zum Beispiel in der Page_Load () - Ereignis)?
Haben Sie ausgecheckt haben, die ASP.NET Veranstaltungen lifecycle? Sorry, wenn Sie schon wissen, aber nur für den Fall: http://msdn.microsoft.com/en-us/library/ms178472.aspx
Hoffe, es hilft.
Ricardo.
Gibt es auch einen guten Beitrag über die repeater-Ereignis in der folgenden blog-post :
LinkButton Label auf der Innenseite-Repeater - ASP.NET
Ich glaube, ich hatte eine ähnliche situation, und meine option war die KRAFT, die Steuerelemente zu binden, sich selbst, durch die Berufung EnsureChildControls oder eine ähnliche Methode.