Ja Dein Kollege hat vollkommen Recht! Das oberste Control wird zwar zuerst instanziert - aber nicht unbedingt ausgeführt!
Somit sollte man ein Control nicht für die Verwaltung von Daten verantwortlich machen - sondern vielmehr zur Anzeige dieser verwenden! Du kommst eigentlich recht gut - wenn Du die Daten, die von einem Control verwendet werden sollen - in einer Art Basiscontrol zu verwalten. Diese dient dazu - die Controls mit Daten zu versehen. Das Basiscontrol wird dabei von der Seite (ASPX) aufgerufen - und besorgt alle für die Anzeige notwendigen Daten. Weiterhin kennt dieses Basiscontrol alle Ihr untergebenen Controls - und übergibt Ihnen die Daten. Ein weiterer Vorteil davon ist - das Du ein und die selben Daten nicht mehrfach holen musst - oder umständlich via Session oder ähnlichem zwischen den Controls übergeben musst! Einfaches Beispiel: Du hast ne Liste von Nutzern. (als Tabelle, Klasse oder wie auch immer). Du hast ein Header Control - auf dem der Name des angemeldeten Nutzers begrüßt werden soll. Weiterhin haste ein Control - z.b.: Eine News-Details Control, bei dem der Name des Autors angezeigt werden soll. Usw. Somit brauchste die Liste der Nutzer nur einmal zu holen - und aus dieser kannste einmal den Namen des aktuell angemeldeten Nutzer raus holen - und im 2. Fall einfach den Namen des Autors der Nachricht. Das ganze lohnt natürlich nur - wenn Du die Nutzer Liste auch im Applikation Cache oder wo auch immer ablegst - denn jedes Mal die komplette Nutzer Liste aus der DB zu laden ist sicher auch nicht sonderlich gut. Aber es soll nur ein Beispiel sein - wie es funktionieren kann. Wenn mehrere Controls mit der selben Information arbeiten - dann lohnt sich das noch mehr - da Du nur einmal die Information laden musst - und dann an jedes beteiligte Control übergeben musst. Dabei muss man nur aufpassen - wenn ein beteiligtes Control die Daten verändert! Da dies erst im Postback passiert - muss man den anderen Controls bescheid geben - das sie die Ansicht neu generieren. Das kann man über einen Postback (nicht sonderlich toll) oder aber auch über Delegaten machen die auf eine Änderung des Objektes lauschen. -----Ursprüngliche Nachricht----- Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Patrik Bitzer Gesendet: Montag, 17. Oktober 2005 11:13 An: [email protected] Betreff: [Asp.net] Ladereihenfolge von Controls auf einer Seite? Hallo ASP.NET Freunde Wenn ich auf einer aspx Seite mehrere ascx Controls platziere, die vielleicht wiederum Controls eingebunden haben, wie ergibt sich dann die Ladereihenfolge? Ich habe zugegebenermassen noch sehr selten mit Controls gearbeitet, beginne jetzt aber damit und möchte mich natürlich "Schaden" begrenzen. Mein Arbeitskollege sagt eben immer wieder, dass er Probleme mit gegenseitigen Abhängigkeiten von Controls habe. Beispielsweise, dass es ein Control im Kopfbereich einer Seite hat, die speichert Daten in die Session. Das Control in der Seitenmitte soll dann beim laden diese Daten aus der Session beziehen. Er meint, dass es eben nicht gewährleistet ist, dass das Control "zuoberst" auf der Seite schon ausgeführt wurde. --> Ich weiss jetzt aber nicht mal genau ob ich das richtig verstanden habe ;-) Naja, für mich klingt das sowieso etwas abenteuerlich. Wäre es nicht so, dass Controls direkt mit-/ untereinander kommunizieren sollten? Da ich noch keine konkrete Problemstellung habe, fällt es mir schwer das nachzuvollziehen, was für Probleme es geben kann. Vielen Dank für Hinweise Patrik _______________________________________________ Asp.net Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/asp.net _______________________________________________ Asp.net Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/asp.net
