Ich habe mich damit herumgeschlagen, dass FormViews so funktioniert, wie Microsoft es von mir erwartet, und ich habe eine Menge toller Sachen herausgefunden.Wie verhindere ich, dass FormView die eingegebenen Werte des Benutzers löscht, nachdem die Einfügemethode ausgelöst wurde?
Ich kann e.Exception und e.ReturnValue in der ObjectDataSource.Inserting Event Handler und ich kann sogar andere Eigenschaften des Objekts in der ObjectDataSource.ObjectDisposing betrügen und überprüfen, indem Sie die e.ObjectInstance ... und ich sogar hat gelernt, dass FormView's Inserthandler NACH dem ObjectDisposing Handler ausgeführt wird. Wenn ein Problem gefunden wurde, habe ich noch Zeit, darauf zu reagieren und den e.KeepInInsertMode auf dem FormView auf true zu setzen.
Mein Problem ist, es scheint, dass die Werte, die vom Benutzer in das Formular eingefügt werden, unabhängig sind.
Wie verhindere ich, dass ein FormView gelöscht wird, nachdem die Insert-Methode ausgelöst wurde?
(mit ASP.NET + VB)
glaube ich nicht meinen Code veröffentlichen hier wird wirklich viel Gutes tun, und ich würde es ändern müssen, um vertrauliche Geschäftslogik Sachen zu trimmen ... so bin ich Ich werde es jetzt überspringen.
edit:
ich eine temporäre und zwar schrecklich cludgy Lösung gefunden zu haben (falls niemand jemals eine wirkliche Lösung für das Problem findet).
Ich habe eine Seite Variable wie folgt definiert:
Dim eInsertArgs As FormViewInsertedEventArgs
Und dann in meiner ItemInserted Handler den folgend ich
If boolInsertErrorOccurred = False Then
e.KeepInInsertMode = True
eInsertArgs = e
Else
eInsertArgs = Nothing
End If
Dann auf jedem der Kontrollen habe ich so etwas wie dies, dass Kontrollen Datenbindungsereignis:
If IsNothing(eInsertArgs) = False Then
Dim _sender As TextBox = sender
_sender.Text = eInsertArgs.Values("_FieldName")
End If
Der Effekt davon ist, dass ich die Werte einstelle BACK zu den übergebenen Werten NACH ASP.NET bindet das FormView an die Standardvorlage (leer).
Bitte helfen Sie mir eine weniger schreckliche Lösung zu finden. :)
Sie bearbeiten mit der Lösung als Antwort vorlegen sollen. –