Benutzer mit den meisten Antworten
BindingSource RaiseListChangedEvents=False & EndEdit / Update

Frage
-
Auf einer Form habe ich einen DataGridView sowie einen Bereich in den
die selektierte oder neu erstellte Row editiert wird.Eigentlich möchte ich erreichen, dass das an Bindingsource gebundene DataGridView,
beim erzeugen einer neuen DataRow, diese erst nach dem Click auf den übernehmen Button anzeigt.
Nicht schon beim erstellen mit BindingSource.AddNew() .Wenn ich BS.RaiseListChangedEvents = False setze, wird die Row im Grid nicht angezeigt.
Jedoch kann ich die Row nicht speichern. Nach dem Aufruf eines BS.EndEdit, ist der
RowState der DataRow immer noch auf detached. Auch davor ein BS.RaiseListChangedEvents = True
ändert daran nichts.Könnte mir jemand etwas dazu sagen, wie ich veranlassen kann, das die DataRow gespeichert werden kann?
--Neue Row erzeugen----------------
AnwesenheitZeitBindingSource.RaiseListChangedEvents = False
drv = AnwesenheitZeitBindingSource.AddNew()
_rowAnwensendZeit = drv.Row---in einer anderen Procedure---------------
----Speichern------
AnwesenheitZeitBindingSource.RaiseListChangedEvents = True
_rowAnwensendZeit.BeginEdit()
_rowAnwensendZeit.Datum =Datum.Value
_rowAnwensendZeit.Bemerkung = txtBemerkung.Text
_rowAnwensendZeit.EndEdit()
AnwesenheitZeitBindingSource.EndEdit()i = _AnwesenheitZeitTableAdapter.Update(rowAnwensendZeit)
Gruss Peter
Antworten
-
Hi Peter,wenn Du willst, dass das neue Datenobjekt vorerst nicht in der Auflistung erscheint, solltest Du anstelle AddNew eine einfache Instanziierung nutzen und dann erst beim Klick auf die “Übernehmen” Schaltfläche dieses Datenobjekt der Auflistung hinzugefügt wird.--
Viele Gruesse
Peter- Als Antwort vorgeschlagen Peter Fleischer Mittwoch, 21. September 2011 05:02
- Als Antwort markiert peter haus Freitag, 23. September 2011 04:04
Alle Antworten
-
Hi Peter,wenn Du willst, dass das neue Datenobjekt vorerst nicht in der Auflistung erscheint, solltest Du anstelle AddNew eine einfache Instanziierung nutzen und dann erst beim Klick auf die “Übernehmen” Schaltfläche dieses Datenobjekt der Auflistung hinzugefügt wird.--
Viele Gruesse
Peter- Als Antwort vorgeschlagen Peter Fleischer Mittwoch, 21. September 2011 05:02
- Als Antwort markiert peter haus Freitag, 23. September 2011 04:04
-
Hi Peter,
Dank für deine Antwort.
Meintest du auf diese Art erstellen?
_rowAnwensendZeit = dtAnwesenheitZeit.NewAnwesenheitZeitRowund aufnehmen so
dtAnwesenheitZeit.AddAnwesenheitZeitRow(_rowAnwensendZeit)Ich habe da immer ein par unsicherheiten, deswegen stellt sich mir noch die Frage.
Was mache ich im Fall eines abbruchs mit der (detached) DataRow, wenn die Bearbeitung abgebrochen wird?
Gibt es auch die Möglichkeit die detached DataRow direkt in das BindingSource Objekt aufzunehmen?
Das BindingSource Objekt gibt ja mit AddNew ein DataRowView zurück.Viell Grüsse
Peter