Entwickler-Ecke
ASP.NET und Web - Problem mit Textbox auslesen
Dresha - Mo 23.06.08 17:35
Titel: Problem mit Textbox auslesen
Ich habe eine Webform mit Textboxen die Daten anzeigen. Das funktioniert soweit auch. Nun wollte ich das man die Daten in der Textbox ändern kann und dann auf einen Button drückt. Damit die Daten insgesamt überschrieben werden. Aber irgend wie liest er immer nur den Wert aus mit der ich die Textbox initialisiere.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| protected void Page_Load(object sender, EventArgs e) { ((WebShopMasterPage)Master).MasterTitle = "Kunden Administration"; ((WebShopMasterPage)Master).PnlSearch.Enabled = false; kId = Convert.ToInt32(Request.Params["pattern"]);
pkm = (IProjectCostumerModule)Application["KundenModule"]; kunde = pkm.GetDetails(kId);
k_id_field.Text = kunde.IdNummer.ToString();
k_vorn_field.Text = kunde.Vorname; k_nachn_field.Text = kunde.Nachname;
k_str_field.Text = kunde.Strasse; k_hnr_field.Text = kunde.Hausnummer; k_plz_field.Text = kunde.Plz; k_ort_field.Text = kunde.Wohnort;
k_telnr_field.Text = kunde.Telefonnummer.ToString(); } protected void k_name_change_click(object sender, EventArgs e) { pkm.ChangeName(kunde.IdNummer, k_vorn_field.Text, k_nachn_field.Text); Response.Redirect(Request.Url.ToString()); } |
Kha - Mo 23.06.08 19:09
Überlege dir einmal, wie oft und wann das Event aufgerufen wird ;) . Um den Code nur beim ersten Aufruf auszuführen, kannst du IsPostBack benutzen. Aber könnte man das Problem nicht etwas eleganter mit Data Binding lösen (nicht, dass ich mich wirklich mit ASP.Net auskennen würde :| ) ?
Dresha - Mo 23.06.08 19:22
Es ginge schöner mit Databind wenn ich eine SQL db darunter sitzen hätte. Ich bekomm die Daten aber via Webservice und da läßt sich das nur mit einigem Biegen und Brechen hinbekommen, und ich dachte wenn man auf den Button "name ändern" Drücke, der mit via "onclick" Évent mit k_name_change_click verbunden ist. Das er die Textbox dann mit name.Text ausliest.
Ansonsten verstehen ich nicht was du mit dem ersten Satz meinst...
Kha - Mo 23.06.08 20:40
Gerade weil die Daten schon so hübsch verpackt als Objekte vorliegen, habe ich eigentlich Binding vorgeschlagen.
Dresha hat folgendes geschrieben: |
Ansonsten verstehen ich nicht was du mit dem ersten Satz meinst... |
Wenn ich nicht völlig daneben liege, was wie gesagt bei ASP.Net schon sein könnte, wird doch nach dem Button-Klick dein Load-
noch vor dem Click-Eventhandler aufgerufen, die User-Daten sind damit in letzterem natürlich futsch. Also darfst du die Controls in Load nur initialisieren, wenn es kein Postback des Users ist.
Dresha - Mi 02.07.08 12:39
Ach so.
Nein Page_Load wird nur beim aufrufen der Webseite ausgeführt. Wenn ich den Button drücke wird nur on_click ausgeführt. Ich denke eher es liegt daran. Das ich die Textboxen noch mit einer Form umgeben muß... naja ich schau mal ob ich das Problem so in den Griff bekomme. Dann meld ich mich wieder.
thomswiss - Di 28.10.08 10:56
ich will jetzt nicht den profi spielen hier, aber meiner meinung nach, wird die seite beim drücken auf einen button neu geladen,..
habs mal bei mir ausgetestet, bei mir ist das jedenfalls so...
dadurch wird das Page_Load auch nochmal durchgespielt...
setz doch mal eienn haltepunkt auf Page_Load...
nimmt mich wunder ob ich so unrecht habe :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!