LoadControl (UserControl )

25/07/2008 - 17:58 von Holger Kreissl | Report spam
Hallo,

ich erzeuge Seiten mit dynamischen Inhalten und verwende dabei
LoadControl um einige UserControls bei bedarf einzublenden.

Folgendes funktioniert super:
Controls.Add ( LoadControl("control.ascx") )

http://msdn.microsoft.com/de-de/lib...78472.aspx

Nun würde ich jedoch gern auf die Angabe des Namens verzichten und mit
hilfe des zweiten Konstruktors (type, params()) auch optionale
Controlparamenter zu übergeben.

Dim ctrl as UserCtrl = LoadControl(GetType(UserCtrl), Nothing)

Der Aufruf funktioniert zwar, jedoch sobald das Control gerendert wird
oder auf irgendeine Eigenschaft (z.B. ein Label) zugegriffen wird, kommt
die Exception.. Das Control ist zwar erzeugt jedoch ist Page und alle
anderen Eigenschaften nothing.. Der Debugger sagt auch nur "Objekt darf
nicht null sein"...

Ich habe die erzeugung an verschiedenen Stellen (init, load etc)
versucht.. Immer der gleiche Effekt.

Hat hierzu jemand einen Tip? Es muss ja gehen, sonst wàre der
Konstruktor ja nicht da :)

Vielen Dank und Grüße

Holger




Holger Kreissl
.NET Software Developer
http://kreissl.blogspot.com/
 

Lesen sie die antworten

#1 Harald M. Genauck
26/07/2008 - 00:58 | Warnen spam
Hallo Holger,

ich erzeuge Seiten mit dynamischen Inhalten und verwende dabei
LoadControl um einige UserControls bei bedarf einzublenden.

Folgendes funktioniert super:
Controls.Add ( LoadControl("control.ascx") )

http://msdn.microsoft.com/de-de/lib...78472.aspx

Nun würde ich jedoch gern auf die Angabe des Namens verzichten und
mit hilfe des zweiten Konstruktors (type, params()) auch optionale
Controlparamenter zu übergeben.

Dim ctrl as UserCtrl = LoadControl(GetType(UserCtrl), Nothing)

Der Aufruf funktioniert zwar, jedoch sobald das Control gerendert
wird oder auf irgendeine Eigenschaft (z.B. ein Label) zugegriffen
wird, kommt die Exception.. Das Control ist zwar erzeugt jedoch ist
Page und alle anderen Eigenschaften nothing.. Der Debugger sagt auch
nur "Objekt darf nicht null sein"...

Ich habe die erzeugung an verschiedenen Stellen (init, load etc)
versucht.. Immer der gleiche Effekt.

Hat hierzu jemand einen Tip? Es muss ja gehen, sonst wàre der
Konstruktor ja nicht da :)



Hat Dein UserControl denn auch den passenden Konstruktor für die
Parameterübergabe?

Siehe z.B.:
http://forums.asp.net/t/998750.aspx

Oder eine (Notlösungs?-)Variante, bei der doch der ascx-Pfad angegeben
wird, aber dennoch Parameter übergeben werden können:
http://blah.winsmarts.com/2006/05/2...eters.aspx


Am Rande: Für ASP.NET-Fragen gibt es eine passendere Newsgroup:
microsoft.public.de.german.entwickler.dotnet.asp


Viele Grüße

Harald M. Genauck

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

Ähnliche fragen