Textfeld wird nicht upgedated

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

Textfeld wird nicht upgedated

Beitragvon kabufzk » Di 23 Sep, 2008 14:20

Hallo!

Habe ein ziemlich nerviges Problem und ich komme nicht drauf warum das so ist bzw. wie man es löst:

Ich erstelle mit Visual Webdeveloper eine simple aspx-Seite (mit Visual Basic) mit mehreren Textfeldern als Inhalt. Der Inhalt der Felder wird beim Laden der Seite (Page_Load) aus einer SQL-Datenbank geladen. Das funktioniert mit einem SqlDataReader bestens.

Code: Alles auswählen
Using connection As New SqlConnection("Data Source=WWWS\SQLEXPRESS;Initial Catalog=datenbank;User ID=benutzer;Password=testabc;Asynchronous Processing=true;")
                Dim command As New SqlCommand(queryString, connection)
                connection.Open()
                Dim reader As SqlDataReader = command.ExecuteReader()
                Try
                    While reader.Read()
                        '### Daten auslesen ###
                        textVorname.Text = reader(0).ToString()
                        textNachname.Text = reader(1).ToString()
End Using


Der Benutzer soll jetzt bei Bedarf Ă„nderungen in den Textfeldern vornehmen und die sollten dann nach einem Klick auf 'Speichern' wieder in die Datenbank geschrieben werden.

Das komische daran ist, dass wenn man den Inhalt eines Textfeldes zur Laufzeit ändert, ich über die den Aufruf von Textfeld.Text immer den Wert zurückbekomme, der beim Page_Load reingeschrieben wurde. Ich will aber den veränderten zurückbekommen. Was mache ich falsch? Wenn ich beim Page_Load nichts reinschreibe, dann bekomme ich immer den aktuellen Inhalt zurück.

Pls help!

kabufzk
kabufzk
Board-Mitglied
Board-Mitglied
 
Beiträge: 112
Registriert: Sa 08 Nov, 2003 21:22

Beitragvon kabufzk » Do 25 Sep, 2008 08:43

ich beantworte die frage selbst...

nach einem klick auf einen button wird ein postback auf den server ausgelöst, welches wiederum das event page_load auslöst. und da im page_load die datenbankanfrage drinnensteht, werden die felder erneut mit den alten werten gefüllt. das kann umgangen werden, indem man prüft ob die seite erstmalig geladen wurde oder es sich um ein postback handelt.

Code: Alles auswählen
If Page.IsPostBack = False Then
...


grĂĽĂźe,
kabufzk
kabufzk
Board-Mitglied
Board-Mitglied
 
Beiträge: 112
Registriert: Sa 08 Nov, 2003 21:22


ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste