Benutzer mit den meisten Antworten
Datagridview zeigt nach CancelEdit nicht richtig an

Frage
-
Hallo liebe NG,
wenn ich in meinem DataGridView eine Änderung mit B_SchulungenBindingSource.CancelEdit() rückgängig mache, werden trotzdem die geänderten Daten angezeigt. Erst nach einem Anwendungs-Neustart stimmt es wieder.
Ich habe eine Master-Detail Verbindung und meine eigene Navigationsleiste. Die Daten im Masterteil werden korrekt angezeigt. Mein DGV hat in zwei Spalten Verknüpfungen zu anderen Tabellen. Ich denke aber, daran kanns nicht liegen. Muss ich die Databinding des DGV neu erstellen? Ich dachte eigentlich, dass die BindingSource das erledigt.Vielen Dank und beste Grüsse von Christina
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click BereicheBindingSource.AddNew() cNavigationsLeiste(Me, False) EingabeMoeglich(True) End Sub Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click cNavigationsLeiste(Me, False) 'globale Prozedur Navigationsleiste EingabeMoeglich(True) End Sub Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click BereicheBindingSource.CancelEdit() B_SchulungenBindingSource.CancelEdit() cNavigationsLeiste(Me, True) EingabeMoeglich(False) End Sub Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click BereicheBindingSource.EndEdit() BereicheTableAdapter.Update(DsMSchulungen.Bereiche) B_SchulungenBindingSource.EndEdit() B_SchulungenTableAdapter.Update(DsMSchulungen.B_Schulungen) DisplayPosition() cNavigationsLeiste(Me, True) EingabeMoeglich(False) End Sub
Antworten
-
Hallo,
CancelEdit bringt bei einem DataGridView in der Regel wenig,
da dass DataGridView seinerseits beim Verlassen bereits End(Current)Edit aufgerufen hat.Damit werden die (Proposed) Werte in der DataTable als Current Werte gekennzeichnet.
In solchen Fällen solltest Du ein RejectChanges für die DataRow aufrufen,
damit werden die Originalwerte wieder hergestellt, sofern vorhanden.Mehr siehe: Bearbeiten von 'DataViews' (ADO.NET)
Gruß Elmar
- Als Antwort markiert sphinxx Donnerstag, 29. April 2010 07:14
Alle Antworten
-
Hallo,
CancelEdit bringt bei einem DataGridView in der Regel wenig,
da dass DataGridView seinerseits beim Verlassen bereits End(Current)Edit aufgerufen hat.Damit werden die (Proposed) Werte in der DataTable als Current Werte gekennzeichnet.
In solchen Fällen solltest Du ein RejectChanges für die DataRow aufrufen,
damit werden die Originalwerte wieder hergestellt, sofern vorhanden.Mehr siehe: Bearbeiten von 'DataViews' (ADO.NET)
Gruß Elmar
- Als Antwort markiert sphinxx Donnerstag, 29. April 2010 07:14
-
Vielen Dank, so funktioniert's.
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click BereicheBindingSource.CancelEdit() 'Änderungen im DGV rückgängig machen Dim dt As DataTable For Each dt In DsMSchulungen.Tables dt.RejectChanges() Next cNavigationsLeiste(Me, True) EingabeMoeglich(False) End Sub