gebundenes DatagridView und IsCurrentRowDirty

17/02/2009 - 07:33 von Carsten Sekulla | Report spam
Hallo
ich habe eine Problem mit dem Editieren in einem Datagridview.
Das DGV bekommt die Daten via Dataview aus einem DataTable:

Dim mDV As DataView = New DataView(mDT)
mDV.RowFilter = "Raum = 17 AND " & _
"EDatum = #2/3/2009#"
mDV.Sort = "OrderID"
dgv.DataSource = mDV

Wenn die editierte Zelle über einen Zeilenwechsel verlassen wird, werden die
Daten
in das DataTable mDT zurückgeschrieben. So soll es auch sein. In Event
CellEndEdit
kann ich dies über DT.GetChanges auswerten. Leider ist ein Zeilenwechsel
nicht immer möglich.

Wenn ich aber aus der editierten Zellen auf ein anders Control springe,
bekomme ich nur
dgv.IsCurrentRowDirty = true, sehe aber keine Möglichkeit das DGV zum
Speichern der Daten
in das DataTable mDT zu veranlassen.

Nach etwas Google, habe ich den Tip gefunden mit Me.Validate, aber der
funktioniert
nur beim Springen in der gleich DGV.Row.

Was fehlt hier noch?

Im voraus vielen Dank

Carsten
 

Lesen sie die antworten

#1 Peter Fleischer
17/02/2009 - 08:30 | Warnen spam
"Carsten Sekulla" schrieb im
Newsbeitrag news:%

ich habe eine Problem mit dem Editieren in einem Datagridview.
Das DGV bekommt die Daten via Dataview aus einem DataTable:

Dim mDV As DataView = New DataView(mDT)
mDV.RowFilter = "Raum = 17 AND " & _
"EDatum = #2/3/2009#"
mDV.Sort = "OrderID"
dgv.DataSource = mDV

Wenn die editierte Zelle über einen Zeilenwechsel verlassen wird, werden
die Daten
in das DataTable mDT zurückgeschrieben. So soll es auch sein. In Event
CellEndEdit
kann ich dies über DT.GetChanges auswerten. Leider ist ein Zeilenwechsel
nicht immer möglich.

Wenn ich aber aus der editierten Zellen auf ein anders Control springe,
bekomme ich nur
dgv.IsCurrentRowDirty = true, sehe aber keine Möglichkeit das DGV zum
Speichern der Daten
in das DataTable mDT zu veranlassen.

Nach etwas Google, habe ich den Tip gefunden mit Me.Validate, aber der
funktioniert
nur beim Springen in der gleich DGV.Row.

Was fehlt hier noch?



Hi Carsten,
da fehlt noch ein EndEdit für das Grid und ein EndCurrentEdit für den
dazugehörenden CurrencyManager. Wenn du über eine BindingSource arbeiten
würdest, wàre es etwas einfacher, da das BindingSource-Objekt einen eigenen
CurrencyManager kapselt und du nicht den CurrencyManager über den
BindingContext das Containers holen musst.

Viele Grüsse
Peter

Ähnliche fragen