das problem ist, dass ich die art des controls, das ich laden m�chte (ein
integer-wert), ja in einer button_click funktion dem viewstate zuweise. der
button_click wird aber wohl erst NACH der page_load funktion aufgerufen,
aber VOR der prerender funktion. deswegen muss ich wohl die controls dort
laden ... oder wie sehen das die anderen ? ? ?

----- Original Message ----- 
From: "Andreas Rudischhauser" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, November 21, 2004 11:05 PM
Subject: AW: [Asp.net] Place Holder


Ich glaub du solltest die Controls schon in Page_Init erstellen, dann ist
der Viewstate fr�her da... musst ggf, den Page Life Cycle genauer durchgehen

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

jo. hab mir in einem view-state einfach eine zahlenfolge f�r die controls
gemerkt, die ich dann �ber ne array-liste referenziere.
(dachte, wenn ich die dateinamen der controls im view-state hin und
herschicke, ist das zu unsicher. dann kann einer ja die dateinamen
manipulieren und wenn er in der lage ist, eine eigene datei auf den server
hochzuspielen, k�nnte er die quasi als control laden ...)
oder bin ich da zu paranoim?

jedenfalls mu� die zuweisung nicht in der Page_load funktion, sondern in der
Prerender-funktion geschehen, da er erst dann die neue zuordung aus dem
viewstate ausliest. :-)
aber so scheints zu funzen ...

----- Original Message ----- 
From: "Andreas Rudischhauser" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, November 21, 2004 8:15 PM
Subject: AW: [Asp.net] Place Holder


Nene das auf keinen Fall (Session werden eigentlich nicht f�r so kleine
Sachen verwendet). Du musst also quasi wissen welche Controls du in
Page_Load erstellen willst. D.h. du verwendest quasi Controls als
Inhaltselemente, z.B. als Item in einer Liste. Ich glaube da ist eventuell
ViewState das richtige Stichwort. Da speicherst du aber nicht das komplette
Control rein, sondern nur vielleicht ein Liste von Zahlen die du den zu
ladenden Controls zuwei�t....

Bin mir da nicht so sicher, vielleicht kann da noch jemand anders was dazu
sagen

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

und wie merke ich mir, welches control gerade geladen werden soll? dann muss
ich mir das in einer session-variablen merken und dann in meiner page_load
die zuweisung aus der session-variablen machen???

----- Original Message ----- 
From: "Andreas Rudischhauser" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, November 21, 2004 7:50 PM
Subject: AW: [Asp.net] Place Holder


Controls m�ssen bei jedem Page_Load geladen werden!!!! (nicht nur beim
ersten mal)

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

oh man... also ich habe mir jetzt mal vs.net installiert.
habe jetzt mal testweise folgendes gemacht:

aspx-startdatei:
da existiert ein Placeholder mit ID Inhalt
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then

Dim holderControl As test1

holderControl = LoadControl("test1.ascx")

holderControl.ID = "test1"

holderControl.Inhalt2 = Inhalt

Inhalt.Controls.Add(holderControl)

End If

End Sub



die f�lle ich im pageload mit dem control test1.ascx, welches einen button
beinhaltet, der dem placeholder anschlie�end ein neues control zuweist. wo
ja bekanntlich mein problem liegt. die funktion f�r diesen button ist wie
folgt:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

'Dim InhaltTmp As PlaceHolder

'InhaltTmp = FindControl("Inhalt")

Inhalt2.Controls.Clear()

Dim holderControl As test2

holderControl = LoadControl("test2.ascx")

holderControl.ID = "test2"

Inhalt2.Controls.Add(holderControl)

End Sub



nach dem klick zeigt er mir leider eine leere seite an, obwohl in test2 ein
eingabefeld sein sollte.

wie ihr seht habe ich auch schon die funktion "findControl" versucht. leider
vergebens.



jetzt mal eine ganz andere frage: ist der ansatz �berhaupt richtig?
programmiert man websiten in dem stil?



ich habe eine hauptseite default.aspx und einen placeholder, in den ich
quasi durch controls all meine "unterseiten" reinlade ...

oder ist das kein guter stil?

----- Original Message ----- 
From: "Andreas Rudischhauser" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, November 21, 2004 5:16 PM
Subject: AW: [Asp.net] Place Holder


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


_______________________________________________
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


_______________________________________________
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