Ich nehme mal an du hast kein Visual Studio oder? Das wäre viel einfacher
damit. 

Für Codebehind gibt es in .NET zwei Mechanismen. Der eine wird von Visual
Studio verwendet und erzeugt nachher eine .DLL Datei wo alle Klassen (ob
Codebehind oder sonst) die in deinem Projekt sind, drin sind. Die ASPX
Dateien werden dann direkt auf den Server kopiert, die DLL in /bin. Das hat
den Vorteil dass man wenn man nur änderungen am Code hat, nur die DLL
hochladen muss, und wenn man Seiten ändern, die DLL bleiben kann.

Wenn du kein VS nutzt musst du den anderen Codebehind Weg gehen, welcher mit
den .aspx.cs dateien arbeitet. Das Unterscheide sich übrigens in der @Page
Deklarative. Musst mal in der Hilfe dazu lesen.

// Codebehind

Das Codebehind funktioniert glaube ich so das alles was du in einer ASPX
machst vom .NET Framework auch in richtigen Programmcode umgewandelt wird,
und dann leitet deine Codebehind Klasse davon ab. Im Endeffekt muss da
einfach richtiger Programmiercode stehen. 

// Dein Problem

Damit du mit den ganzen Klassen arbeiten kannst, musst du natürlich wissen
wie die heißen. Verwendest du KEIN Codebehind, dann erzeugt der .NET
Framework die Klassen selbst und du weißt die Namen nicht. Deshalb brauchst
du das Codebehind, damit du nachher "casten" kannst.

// Beispiel in c# weil ich vb nicht mehr kann

Angenommen das willkommen.ascx hat im codebehin die klasse WillkommenControl

WillkommenControl x = (WillkomenControl)LoadControl("willkommen.ascx")

Damit wäre das x dein Control aber vom Typ "Willkomencontrol". Jetzt kannst
du darauf auf alle enthaltenen Objekte zugreifen. Wenn du Visual Studio
hättest würde es dir dann wenn du x. eingbist, sogar sagen welche Objekte
darin liegen.

// Fazit
VS.NET muss her :)


-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im
Auftrag von Thomas Beckert
Gesendet: Sonntag, 21. November 2004 16:37
An: [EMAIL PROTECTED]
Betreff: Re: [Asp.net] Place Holder

also wenn ich das jetzt richtig verstanden habe, besteht die einzige
möglichkeit, klasse in eine aspx-datei zu importieren, darin, dass ich sie
zuerst in eine dll kompiliere und dann in das bin-verzeichnis lege ...

jetzt bekomme ich beim kompilieren meiner haendler.vb die meldung:

BC30469: Reference to a non-shared member requires an object reference.


und zwar an der stelle:

holderControl = LoadControl("willkommen.ascx")


irgendwie verstehe ich nicht, warum das alles so kompliziert sein muss. oder
habe ich nur einfach den falschen ansatz???

----- Original Message ----- 
From: "Alexander Zeitler" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, November 20, 2004 7:18 PM
Subject: RE: [Asp.net] Place Holder



>
> achso... ich glaub, ich habe dem gar keinen typen gegeben. :-/
> die source sieht so aus:
>

Vermutlich so (meine VB.NET Kenntnisse sind bescheiden):

Public Class HaendlerControl Inherits System.Web.UI.UserControl

Sub Suche_Click(sender As Object, e As EventArgs)
        Inhalt.Controls.Clear()
        Dim holderControl As Control
        holderControl = LoadControl("willkommen.ascx")
        holderControl.ID = "Kunden"
        Inhalt.Controls.Add(holderControl)
    End Sub

    Private Inhalt As PlaceHolder

    Public Property givePlaceHolder() As PlaceHolder
        Get
            Return Inhalt
       End Get

       Set
            Inhalt = Value
       End Set
    End Property

End Class

HaendlerControl wäre dann der Typ, den Du verwenden mußt.

Außerdem wäre es eleganter, mit CodeBehind zu arbeiten.

Gruss

Alex


_______________________________________________
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

Antwort per Email an