Forums Neueste Beiträge
 

EndEdit setzt RowState immer auf Modified...?

28/11/2008 - 09:46 von M.Erlinger | Report spam
Hallo
ich hàtte folgende Frage: in einer Form, in der der User manuell
speichern kann, oder aber auch ein Speichern beim Schließen der Form
erfolgt (wenn dies der User über die MessageBox bestàtigt) habe ich
folgendes Problem:

Wenn der User Daten àndert, und manuell speichern drückt -
funktioniert alles soweit, und die Daten sind in der Tabelle auch
geàndert!
gehe ich gleich weiter mit dem Schließen der Form, kommt ich zum
Closing-Event, und hier habe ich die Statements:
bsVisitReport.EndEdit();
und die Abfrage, ob die dataRow.RowState == Modified ist.

und siehe da -> wenn ich im Debugger "EndEdit" ausführe, wird der
RowState auf "modified" gesetzt, der vorher schon "unchanged" war.

Kann mir bitte jemand sagen, wenn ich vorher schon einen korrekten
Update durchführe, Daten validiere, die RowState nach dem Update auf
"unchanged" ist, wieso nach dem EndEdit diese wieder auf "modified"
gestellt wird ??

Vielen Dank schon mal im voraus - und Grüsse
Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
28/11/2008 - 11:48 | Warnen spam
Hallo Michael,

... gehe ich gleich weiter mit dem Schließen der Form,
kommt ich zum Closing-Event, und hier habe ich die Statements:
bsVisitReport.EndEdit();
und die Abfrage, ob die dataRow.RowState == Modified ist.
und siehe da -> wenn ich im Debugger "EndEdit" ausführe, wird der
RowState auf "modified" gesetzt, der vorher schon "unchanged" war.



Fragst Du auch die richtige Zeile ab?
Bei mir bleiben die RowState's auf unchanged,
wenn der Benutzer nichts geàndert hat. *Wenn*
eine Zelle der Row bearbeitet wurde, wird der RowState
zu "Modified", wie es sein soll ... :
Mein Quellcode dazu:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
this.Validate();
this.bsVisitReport.EndEdit();
ShowCurrentRowState("Nach EndEdit");
}

private void ShowCurrentRowState(string hinweis)
{
DataRowView drv = bsVisitReport.Current as DataRowView;
DataRowState rowState = drv.Row.RowState;
MessageBox.Show(hinweis + ": " + rowState.ToString());
}

Schàtzungsweise spielt noch weiterer uns unbekannter
Quellcode eine Rolle. Ansonsten gib uns
den von Dir benutzten möglichst reproduzierbaren
Quellcode genauer an.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen