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

Antwort per Email an