Forum: ASP.NET |
Thema:
Re: Event zur Laufzeit anhängen! |
Von:
Matthias Auswöger (
03.06.2005 19:31) |
Tja, das Problem ist dass anders wie in Windows-Forms alle Controls beim Postback aus der aspx-File neu erzeugt werden und über mehrere Funktionen mit Daten versorgt.
Nachdem aber die Seite gerendert ist und sich auf den Weg zum Cient macht wird die Webform samt allen Controls dem Garbage-Collector zum Frass vorgeworfen.
Lediglich die (Webform).Session bleibt über(da kann man dann wunderbar Objekte verstecken).
Beim eintreffe des nächsten Postbacks wird die Webform komplett neu aufgebaut, d.h. es werden alle Controls welche sich im aspx-File befinden werden initialisiert und dem ganzen (kriegen der Daten vom Postback)-Wahnsinn ausgesetzt. Deine Textbox steht nicht in der aspx-File und wird von dir nicht vor dem o.g. Wahnsinn initialisiert.
Problemlösung 1:
Definiere Ganz einfach eine Textbox im Designer und setze diese auf Visible=true beim Clicken auf dem Button und auf False bei jedem Postback
Problemlösung 2:
Für dem Fall dass du keine Textbox in die aspx-File laden willst kannst du die Textbox im InitializeComponent Instanzieren, mit einer ID versehen, invisible machen, Handler setzen und zu den Controls hinzufügen. Über FindControl bekommst du das Control wieder um im Button_Click die Textbox visible zu machen.
Problemlösung 3:
Angenommen ich verstehe dass alles falsch, und du möchtest pro Click eine neue Textbox erstellen, dann musst du ein Array mit Textboxen in der Session parken und im InizializeComponent zur Webform hinzufügen.
Hoffe das Hilft!
MfG
Matthias Auswöger
matthias.auswoeger@gmx.net
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!