2010-11-30 2 views
2

Ich habe ein FormView-Steuerelement in einer ASP.NET-Seite. Ich verwende das InsertItemTemplate und das EditItemTemplate, um Datenmanipulationsfunktionen bereitzustellen, und es funktioniert sehr gut. Ich möchte dem Benutzer ermöglichen, von einem vorhandenen Objekt auf "Kopieren nach Neu" zu kopieren. Mit anderen Worten, ich möchte, dass der Benutzer ein Objekt so anzeigen kann, als würde es es bearbeiten. Wenn es dann auf die Schaltfläche "Copy to new" klickt, wird es die Informationen von diesem Element in ein "Insert" laden. Form, so dass sie nur die Bits der Daten ändern konnten, die sie wollen, und fügen Sie das neue Element ein.Was ist die beste Möglichkeit zum Implementieren von "Kopieren in neue" Funktionalität mit FormView Steuerelement und Inhaltsvorlagen

Die Datenobjekte, mit denen wir es zu tun haben, sind ziemlich groß, so dass diese Funktionalität dem Benutzer viel Datenmangel ersparen wird.

Ich habe experimentiert mit dem Kopieren der vorhandenen EditItemTemplate-Steuerelemente im Klick-Ereignis der Copy-Taste, Speichern und Schreiben in die neuen InsertItemTemplate-Steuerelemente, sobald das Formular neu geladen wird (im Page_PreRender-Ereignis). Aber das ist ziemlich hässliches Zeug. Es muss einen besseren/einfacheren Weg geben.

Hat jemand irgendwelche Vorschläge?

Vielen Dank für den Rat, den Sie geben können.

Antwort

1

Nun, warum nicht einfach in der Bearbeitungsansicht belassen, haben Copy to new ein Flag setzen, dann das ItemEditing-Ereignis behandeln, und wenn Sie in den neuen Modus kopieren, dann fügen Sie einen neuen Datensatz ein, anstatt mit dem Update fortzufahren. Das könnte dir viel Arbeit ersparen.

HTH.

+0

Ja, das hat geholfen. Ich habe eine noch einfachere Lösung gefunden. In der EditItemTemplate habe ich eine "CopyToNew" -Schaltfläche und eine "InsertItem" -Schaltfläche hinzugefügt. Die Sichtbarkeit der Schaltfläche "InserItem" ist anfangs auf "Falsch" festgelegt. Wenn der Benutzer CopyToNew klickt, setze ich InsertItem sichtbar. Beim Click-Ereignis von InserItem setze ich den einzufügenden FormView-Modus und rufe die Einfügefunktion auf (die Steuerelemente in EditTemplate haben genau den gleichen Namen wie InsertTemplate, also funktioniert das). DANKE FÜR IHRE HILFE! – rogdawg

+0

Das funktioniert gut, ändern Sie einfach den "FormView" -Modus zu "Einfügen", bevor Sie 'InsertItem' aufrufen. –

Verwandte Themen