Autor Beitrag
Dresha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP Prof
C# (VS08 + NET3.5), jdk6
BeitragVerfasst: Mo 23.06.08 17:35 
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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP Prof
C# (VS08 + NET3.5), jdk6
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 23.06.08 20:40 
Gerade weil die Daten schon so hübsch verpackt als Objekte vorliegen, habe ich eigentlich Binding vorgeschlagen.
user profile iconDresha 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP Prof
C# (VS08 + NET3.5), jdk6
BeitragVerfasst: 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
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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