Wie lösche ich alle Daten in eine asp.net Seite nach der form submition
Habe ich geschrieben, einen langen asp.net webform hat über 44 steuert. Und diese Daten werden in eine DB. Mein problem ist, nach form submit, möchte ich ALLE löschen die Daten im ViewState und die webform-controls Inhalt gelöscht werden soll. Wie ist es möglich, ohne manuell(und mühsam) klar jeder Kontrolle?
ViewState.Clear()
funktioniert nicht
Page.EnableViewState = false
funktioniert nicht.
Beachten Sie, dass, wenn Sie die Umleitung zu einer anderen Seite nach dem abschicken, dann müssen Sie nicht ein problem haben. Dies ist nur ein Problem in dem Fall, wo Sie bleiben auf der Seite nach dem submit.
InformationsquelleAutor Mr Lonely | 2012-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie bleiben auf der gleichen Seite, clearing es auf der client-Seite oder von der code-behind auf dem postback wäre etwas vorzuziehen, um eine Umleitung, wie Sie sparen eine Reise mit dem server, obwohl es mehr Arbeit.
Auch
Response.Redirect(url)
wirft einenThreadAbortionException
, die eine negative Auswirkung auf die performance, so dass, wenn Sie gehen wollen, dass die redirect-route, betrachtenResponse.Redirect(url, false)
.Client-side option: (der einfache Weg)
Code gestohlen von dieser Beitrag.
Server-side option:
Du könntest in einer Schleife durch alle Kontrollen, um Sie zu löschen. Am Ende der Funktion, dass die Prozesse Ihre form, fügen Sie hinzu:
Funktion:
Durchlaufen der Controls und untergeordnete Steuerelemente ist etwas, das kommt up eine Menge, so dass Sie schreiben, könnte eine Erweiterung Methode, dies zu tun. Etwas entlang der Linien von was habe ich in diesem Beitrag (sondern stattdessen eine Funktion, stattdessen gibt eine Auflistung aller Steuerelemente). Ich habe eine extension-Methode in meinem Projekt, der dies tut, nennt GetAllChildren(), so dass der gleiche code von oben ausgeführt werden würden, wie diese:
InformationsquelleAutor MikeSmithDev
nach der Aufnahme abgeschlossen ist, verwenden Sie einfach
Response.Redirect
zum erneuten laden der gleichen Seite von Grund auf neu.beispielsweise
Page.Response.Redirect(Page.Request.RawUrl)
InformationsquelleAutor Raab
Versuchen, diese
InformationsquelleAutor Omkar Hendre
Schlage ich vor, du spielst nicht mit dem ViewState. Es soll Ankoppelung der Zustand der Steuerelemente.
Stattdessen ändern Sie einfach den Status der Kontrollen, entweder durch Umleitung oder durch deaktivieren der Kontrollen ausdrücklich.
InformationsquelleAutor
Sorry, ich kann nicht fügen Sie einen Kommentar für Omkar Hendre Antwort wegen meinem niedrigen Ruf.
Die Codes sind gut und für mein problem, ich brauche zu setzen, Seite vor der Form.Controls.
Durch die Art und Weise, ich danke Ihnen sehr! 🙂
InformationsquelleAutor Asyraf Azmin