2011-01-17 8 views
3

Ich arbeite an einem Webformular mit verschiedenen Steuerelementen. Abhängig von den Benutzereingaben zeige/verstecke ich (benutze JQuery's show()/hide() Funktionen) Bits der GUI. Wenn das Formular zurückgebucht wird und die Validierung jedoch fehlschlägt, möchte ich, dass die GUI im selben Zustand bleibt, in dem sie vor dem Postback war, anstatt zum ersten Ladezustand zurückzukehren. Offensichtlich behalten die ASP.Net-Steuerelemente den Status bei, aber ich habe HTML-Container, die reine clientseitige Objekte sind.JQuery/ASP.Net - Wie den Status der versteckten UI-Elemente über Postbacks beibehalten?

Bei dem Versuch, eine Lösung, die ich mir selbst gegenüber den trüben Überschrift finden zu entwerfen (und knifflige-to-debug) Bereiche von versteckten Formularfelder - erinnert mehr an meine pre-JQuery Arbeit als alles 21. Jahrhundert :-(

? kann mir jemand einen besseren Weg vorschlagen ...

+0

Haben Sie in Erwägung gezogen, die Validierung und das Postback (dh Server Side Interaction) auf der Client-Seite durch Ajax zu behandeln? – ScottE

+0

Warum reichen Sie nicht mit AJAX ein? – SLaks

+0

@ScottE @SLaks - danke für das Posten. Legacy-Code und zeitlich begrenzt, also keine Pausen für so radikale Überholungen, fürchte ich :-( – 5arx

Antwort

1

Wenn jemand liest diese:

Ich ging mit einer JQueryish-Lösung - eine JS-Funktion läuft jetzt onready. Es überprüft den Status aller ASP.Net-Steuerelemente, die als 'Sichtbarkeits-Controller' fungieren (die ihren eigenen Status über Postbacks beibehalten) und setzt die Benutzeroberfläche entsprechend über JQuery-Aufrufe.

0

ich denke, der Trick, um die verborgenen Felder verwenden, um den Zustand der clientseitigen Felder anhalten

So ist der Prozess so etwas wie ist.

Benutzeraktion -> update h Idden Wert (e) -> Update UI

Dann, wenn die Seite Beiträge zurück, Sie wieder stellen Sie die Benutzeroberfläche:

Seite zu laden -> Update UI