Autor Beitrag
fahrstuhl65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mo 12.03.12 12:02 
Hi,

ich habe ein Gridview was wie folgt dynamisch befüllt wird und als Spalte
lediglich ein CommandField hat was die Bearbeitung zulässt:
ausblenden 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: fahrstuhl65
fahrstuhl65 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



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