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: asp.net@glengamoi.com
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: asp.net@glengamoi.com
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: asp.net@glengamoi.com
> 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:
> Asp.net@glengamoi.com
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/asp.net

_______________________________________________
Asp.net Mailingliste, Postings senden an:
Asp.net@glengamoi.com
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

_______________________________________________
Asp.net Mailingliste, Postings senden an:
Asp.net@glengamoi.com
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net


_______________________________________________
Asp.net Mailingliste, Postings senden an:
Asp.net@glengamoi.com
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an