Ich habs folgenderma�en gemacht:

switch(CentralTab.SelectedIndex)
{
case 0:
    namespace.controls._class1 objClass1 = new namespace.controls._class1();
    PlaceHolder.Controls.Clear();
    PlaceHolder.Controls.Add(objClass1);
    break;
case 1:
    namespace.controls._class2 objClass2 = new namespace.controls._class2();
    PlaceHolder.Controls.Clear();
    PlaceHolder.Controls.Add(objClass2);
    break;
.....
}

Nun hat er bei mir folgenden Fehler gebracht: "Eine Instanz der abstrakten
Klasse oder Schnitstelle 'namespace.controls._class1' konnte nicht erstellt
werden."
Dieser Fehler tritt in der Zeile auf, wo ich das Objekt erstelle: objClass1
oder objClass2.

Um den Fehler zu beheben hab ich in den entsprechenden Controls die Klasse
ge�ndert.
Standardm��ig hat die Klasse wie folgt ausgesehen:

namespace namespace.controls
{
    ....
    public abstrakt class _class1 : System.Web.UI.UserControl
    {
        ....
    }
}

-------------------------------------
nun ge�ndert (nicht mehr abstrakt):
-------------------------------------

namespace namespace.controls
{
    ....
    public class _class1 : System.Web.UI.UserControl
    {
        ....
    }
}

so funktioniert zwar das erstellen der Instanz und das hineinladen der
Klasse, jedoch
hab ich dadurch ein anderes Problem. Nun kommt mir der Fehler (egal welches
Control ich einlese):

"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Er erkennt mir kein Objekt mehr. Der Fehler tritt beim ersten Objekt auf,
auf
das ich zugreife. Egal ob es ein Button, Label, .... ist. Wenn ich nur in
"private void InitializeComponent" einem Button.click einen Event hinzuf�ge
kommt
schon der Fehler. Wenn ich das unter Kommentar setzte, kommt der Fehler halt
beim n�chsten Objekt auf das ich zugreife.
Die Objekte sind alle definiert, deklariert und er m�sste jedes Objekt
kennen.

----- Original Message -----
From: "Andre Seifert" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, August 20, 2003 9:28 AM
Subject: AW: [Asp.net] Controls dynamisch laden


Empfehlung: Controls, die dynamisch "geladen" werden, immer in einen fest
platzierten Placeholder o.�. laden.

So, wie macht man es:

Ganz einfach, du erzeugst eine Instanz deiner Klasse und f�gst sie an den
Placeholder an.


[DeinNamespace].[KlassennameDeinesControls] obj = new
[DeinNamespace].[KlassennameDeinesControls]();

PlaceHolder1.Controls.Add(obj);


Oder, eine andere Variante ist mit LoadControl...

PlaceHolder1.Controls.Add(LoadControl("yourcontrol.ascx"));


Du kannst auch ascx-Dateien als Templates f�r Repeater oder Datalist
verwenden. Aber das weiss ich jetzt nicht mehr aus dem Hut, wie das geht
*sch�m*



> -----Urspr�ngliche Nachricht-----
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Im Auftrag von Stadelmann Patrick
> Gesendet: Mittwoch, 20. August 2003 09:02
> An: [EMAIL PROTECTED]
> Betreff: [Asp.net] Controls dynamisch laden
>
> morgen,
> ich binde meine Controls ganz einfach ein
>
> <%@ Register TagPrefix="Control" TagName="blabla"
> Src="/controls/blabla.ascx" %>
> <%@ Register TagPrefix="Control" TagName="test"
> Src="/controls/test.ascx" %> ......
>
> .......
> <CONTROL:BLABLA id="ctrBlabla" runat="server" />
> <CONTROL:TEST id="ctrTest" runat="server" /> .......
>
> jetzt hab ich geh�rt, dass man Controls auch dynamisch laden
> kann, damit nicht der gesamte Input in die Seite geschrieben
> wird. Ich hab versucht mich dar�ber schlau zu machen, hab
> irgendwie nicht das richtige gefunden.
> Wenn mir jemand ein Beispiel hat oder einen Link kennt wo
> dieses Thema behandelt wird, w�hre ich dankbar.
>
> Patrick
>
>
>
> _______________________________________________
> Asp.net mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/asp.net

_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net


_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an