Entwickler-Ecke

ASP.NET und Web - Gridview - kann im Edit Modus die Textbox nicht finden ?


fahrstuhl65 - Mo 12.03.12 12:02
Titel: Gridview - kann im Edit Modus die Textbox nicht finden ?
Hi,

ich habe ein Gridview was wie folgt dynamisch befüllt wird und als Spalte
lediglich ein CommandField hat was die Bearbeitung zulässt:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
SqlConnection sqlConnection = new SqlConnection(strSQLconnection);
// ein SQL Command erstellen mit parametrisierter Abfrage
SqlCommand sqlCommand = new SqlCommand("select * from Setup WHERE aktiviert = 0", sqlConnection);
// einen Tableadapter erstellen für die Anzeige im GridView
SqlDataAdapter Adapter = new SqlDataAdapter(sqlCommand);
// ein DataTable erstellen wo die Daten reinkommen
DataTable ds = new DataTable();
// und mit den Daten des Tableadapters füllen
Adapter.Fill(ds);
// Das GridView an das DataTable binden und anzeigen
GridView1.DataSource = ds;
GridView1.DataBind();

wenn ich auf Bearbeiten gehe und etwas geändert habe, versuche ich nun wie folgt
die Änderungen abzufragen um sie dann danach in die DB zu schreiben:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    GridViewRow row = GridView1.Rows[e.RowIndex];

    TextBox punkte = (TextBox)row.FindControl("Punkte");
    TextBox Uhrzeitbis = (TextBox)row.FindControl("Uhrzeit_bis");                        
}

Leider findet er die Spaltennamen "Punkte" bspw. nicht. Liegt das daran das diese
dynamisch generiert werden ? Wenn ja - wie kann ich denn trotzdem darauf zugreifen ?

Freue mich auf Eure Hilfe !

Gruß
Fahrstuhl

Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Ralf Jansen - Mo 12.03.12 12:16

Du arbeitest mit Databinding. Die Änderung stehen also im Anschluß in deinem Dataset. Wieso willst du dir die Daten mit viel Mühe aus den Editoren (die es natürich nur während dem konkreten editieren in einer Zelle nur für diese Zelle gibt und dessen Namen du nicht kennst) klauben? Schau einfach in dein Dataset. Oder zumindest in die GridViewUpdateEventArgs da stehen die Werte auch drin.


fahrstuhl65 - Mo 12.03.12 12:26

Hallo Ralf,

was muss ich denn ins RowUpdating Event schreiben, damit die Änderungen übernommen werden ?
wenn ich jetzt auf Aktualisieren klicke nachdem ich einen Eintrag verändert habe, dann passiert
einfach nichts, gehe ich auf eine andere Zeile in den EditModus erscheint in der soeben geänderten
Zeile wieder der Ausgangswert !?

Irgendwie muss ich dem Dataset doch mitteilen das sich was verändert hat, oder ?

fahrstuhl


fahrstuhl65 - Di 13.03.12 13:50

Kann geschlossen werden hier, habs mir jetzt doch über die umständlich über die Textboxen
herausgepult und schreibs dann in die DB ! :D

Danke für die Hilfe !