Ich vermute mal, dass Du zu verquer denkst!
Dein UserControl wird gar nicht vom Typ UserControl sein - sondern von
UserControl abgeleitet sein!
Somit solltest Du Dir den wirklichen Namen Deines UserControls holen. Wie es
genau heißt, findest Du eigentlich in der CodeBehind Seite Deines Controls -
und dort ist es nämlich der Klassen Name!
Somit solltest Du nicht nach UserControl casten - was logischerweise
funktioniert, da Dein Control davon ja abgeleitet ist, sondern vielmehr in den
richtigen Typ Deines UserControls.
Beispiel:
Dein UserControl heißt: UserDetails
UserDetails ctrl_Content =
(UserDetails)Page.LoadControl("/uc/Content/Content.ascx");
ctrl_Content.ContentID = 1;
Das sollte dann so gehen! Dein Workaround macht das ähnlich - wenn auch eher
von hinten durch die Brust. Dort wird nämlich auf UserControl (Deine
Basisklasse) gecastet - und dann geschaut ob da nicht ein Element existiert was
ContentID heißt - und darauf dann der Wert gesetzt. Aber diese Art ist doch
eher langsam und auch recht umständlich.
-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Raphael Saxer
Gesendet: Donnerstag, 17. November 2005 19:38
An: [email protected]
Betreff: [Asp.net] AW: [Asp.net] AW: [Asp.net] ID an UserControl übergeben
So - vielen Dank für den Denkanstoss.
Jetzt läuft es. Aber leider reicht mein Wissen nicht aus um zu erklären
warum?
Nun sieht es so aus:
UserControl ctrl_Content =
(UserControl)Page.LoadControl("/uc/Content/Content.ascx");
Type t = ctrl_Content.GetType();
PropertyInfo prop = t.GetProperty("ContentID");
prop.SetValue(ctrl_Content, 1, null);
Was läuft da genau ab?
(nur falls jemand Zeit hat)
Danke und Gruss
Raphael
-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im
Auftrag von Christoph Cluss
Gesendet: Donnerstag, 17. November 2005 18:56
An: [email protected]
Betreff: [Asp.net] AW: [Asp.net] ID an UserControl übergeben
kenne mich mit c# nicht so aus...
denke mal das UserControl nicht die Klasse deines Controls ist.
Du mußt das Control in den entsprechenden Type casten.
in VB:
Dim m As New MyControl
m = CType(LoadControl("MyControl.ascx"), MyControl)
Chris
> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Auftrag von Raphael Saxer
> Gesendet: Donnerstag, 17. November 2005 18:36
> An: [email protected]
> Betreff: [Asp.net] ID an UserControl übergeben
>
>
> Hallo
>
> Ich versuche hier gemäss den Anweisungen auf der Seite von Thomas
>
http://blogs.dotnetgerman.com/thomas/PermaLink,guid,781f35f9-7868-4cde-a5e6-
> 186b89cbc47f.aspx
> eine ID an ein UserControl zu übergeben. Leider gelingt mir das nicht.
>
> Seite1.aspx
> UserControl ctrl_Content = (UserControl)Page.LoadControl("uc.ascx");
> ctrl_Content.ContentID = 1;
>
> Usercontrol:
> private int idc;
> public int ContentID
> {
> get { return idc; }
> set { idc = value; }
> }
>
> Leider gibt's diesen Fehler:
> 'System.Web.UI.UserControl' enthält keine Definition für 'ContentID'
>
>
> Vielen Dank für die Hilfe.
>
> Raphael
>
> _______________________________________________
> 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
_______________________________________________
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