UserControls mit LoadControl nachladen

10/03/2009 - 09:34 von Jan | Report spam
Hallo NG!

Wenn man ein UserControl zur Laufzeit nachlàdt, steht seine Klasse danach
zur Verfügung.

MyControl meinControl = (MyControl)LoadControl("...");

Wenn ich anschließend eine weitere Instanz von MyControl erstelle:

MyControl meinZweitesControl = new MyControl();

Habe ich Zugriff auf ihre Member, sofern sie im Code Behind definiert sind.
Aber ich habe keinen Zugriff auf die WebControls, die innerhalb von
MyControl definiert sind, die sind scheinbar einfach (noch) nicht vorhanden.

Auf die untergeordneten Controls habe ich nur dann Zugriff, wenn ich auch
die weiteren Instanzen mit LoadControl nachlade. Und da frage ich mich, on
die dazugehörige asxc-Datei wirklich jedes Mal neu aus dem Dateisystem geholt
wird und ob das nicht tierisch auf die Performance geht, wenn auf einer Seite
mehrere solcher Instanzen benötigt, sprich nachgeladen werden.

Gibt es eine andere Möglichkeit, auch der mit new erstellten Instanz Zugriff
auf untergeordnete Controls zu ermöglichen?

Viele Grüße

Jan
 

Lesen sie die antworten

#1 Harald M. Genauck
10/03/2009 - 12:47 | Warnen spam
Hallo Jan,

Wenn man ein UserControl zur Laufzeit nachlàdt, steht seine Klasse
danach
zur Verfügung.

MyControl meinControl = (MyControl)LoadControl("...");

Wenn ich anschließend eine weitere Instanz von MyControl erstelle:

MyControl meinZweitesControl = new MyControl();

Habe ich Zugriff auf ihre Member, sofern sie im Code Behind definiert
sind.
Aber ich habe keinen Zugriff auf die WebControls, die innerhalb von
MyControl definiert sind, die sind scheinbar einfach (noch) nicht
vorhanden.

Auf die untergeordneten Controls habe ich nur dann Zugriff, wenn ich
auch
die weiteren Instanzen mit LoadControl nachlade. Und da frage ich
mich, on
die dazugehörige asxc-Datei wirklich jedes Mal neu aus dem
Dateisystem geholt
wird und ob das nicht tierisch auf die Performance geht, wenn auf
einer Seite
mehrere solcher Instanzen benötigt, sprich nachgeladen werden.



Nein, die Datei wird nicht immer neu aus dem Dateisystem geholt,
sondern vom virtuellen Dateisyswtem in einem Cache gehalten.

Gibt es eine andere Möglichkeit, auch der mit new erstellten Instanz
Zugriff
auf untergeordnete Controls zu ermöglichen?



Nein, nicht, dass ich wüsste.


Viele Grüße

Harald M. Genauck

"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)

Ähnliche fragen