Laden...

Zugriff auf ein Control im Control per Request.Form - Panel / Textbox

Erstellt von BerryFerguson vor 15 Jahren Letzter Beitrag vor 14 Jahren 700 Views
BerryFerguson Themenstarter:in
17 Beiträge seit 2009
vor 15 Jahren
Zugriff auf ein Control im Control per Request.Form - Panel / Textbox

Servus Männers,

habe auf meinen Portal nen Abschnitt - Meine Daten -, da werden die daten von dem eingeloggten user angezeigt. Einmal hab ich nen readPanel mit mehreren Labels, die über ne DB - Anbindung gefüllt werden, wenn man auf nen Button "bearbeiten" klickt, wird das read panel unischtbar und das edit panel sichtbar, wo sich textboxen und labels befinden die erst über DB gefüllt werden.Dann kann ich aber die Daten ändern und möchte nun über nen aktualisieren Button die neuen Sachen in die db schreiben.

Da is ja alles so kein prob, das ding ist nur das ich ja irgendwie an die aktuellen Inhalt von den Textboxen kommen muss. Über Textbox.Text wird das ja nix und Request.Form[textbox.id] geht auch nich, da die textboxen sich im panel befinden...

im debugger sieht man das die textboxen ne neue id bekommen, irgendwie content$tb_blablablub$... das könnt ich mir ja merken und auch als index nutzen aber is ja ziemlich unschön...ich könnte auch ne den zahlenindex nehmen, nur wenn ich dann mal ne textbox mehr habe, schmeißt der das wieder alles durcheinander...

Einer nen kleinen Lösungsansatz??

hier mal mein button-click-event:

protected void bt_update_Click(object sender, EventArgs e)
        {
            //Felder
            string[] fields = new string[] { "Login", "Passwort", "Name", "Vorname", "Telefon", "Mobil", "eMail" };
            //Werte
            string[] values = new string[] { Request.Form[tb_ed_login.ID], Request.Form["tb_ed_pass"], Request.Form["tb_ed_name"], Request.Form["tb_ed_vorname"], Request.Form["tb_ed_tele"], Request.Form["tb_ed_mobil"], Request.Form["tb_ed_email"] };
            

            //Daten in DB updaten
            if (DataAccessLayer.Update("dbo.BEARBEITER_STAMM", fields, values,"ID="+user.UserId+""))
            {
                ErrorMessageLabel.Text = "Daten erfolgreich aktualisiert";
                
                pl_edit.Visible = false;
                pl_read.Visible = true;

                bt_edit.Visible = false;
                bt_update.Visible = true;
                bt_cancel.Visible = true;
            }
            else
            {
                ErrorMessageLabel.Text = "Beim aktualisieren ist ein Fehler aufgetreten, bzw. Daten sind auf dem aktuellsten Stand.";
            }
        }

wenn ihr noch was braucht sagt bescheid...

gruß berry

1.433 Beiträge seit 2006
vor 14 Jahren

Ich nehme an dass der Update Button im gleichen Panel wie die Textboxen mit den neuen Werten sind. Wenn ja würde ich mit einer rekurisven Methode alle Parent Elemente durchsuchen die vom Typ TextBox sind, die Daten in die DB schreiben und fertig. Und wenn das Parent Element vom Typ Panel ist kannst Du die Methode abbrechen lassen, dann solltest Du die Textboxen und deren Werte schon gefunden haben.

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt