3 Stimmen

Wie kann ich den Zustand des Kontrollkästchens auf einer Seite beibehalten, die per Ajax aktualisiert wird?

Ich habe eine Html-Tabelle in meiner Anwendung, die den Status der verschiedenen im System laufenden Aufträge anzeigt. Jedem Auftrag ist ein Status zugeordnet, z. B. ein gepunktetes Gif für laufende Aufträge. Neue Aufträge haben ein Kontrollkästchen neben sich, das es dem Benutzer ermöglicht, den zugehörigen Auftrag auszuwählen und zu starten.

Die Tabelle ist ein Struts2-Auto-Refreshing-Div (sx:div), es aktualisiert alle paar Sekunden zu reflektieren, was derzeit mit den Aufträgen geschieht.

Das Problem ist, dass ich den Status der Kontrollkästchen verliere, wenn das Div aktualisiert wird.

Gibt es eine elegante Möglichkeit, ihren Zustand zu erhalten? Ich habe die Möglichkeit, einige Javascript nach Abschluss der Ajax-Aktualisierung mit dem Dojo-Thema-System in den Tag gebaut aufrufen, aber ich bin nicht sicher, was ist der beste Weg, es zu nähern.

1voto

Joel Punkte 18917

Ich bin nicht sehr vertraut mit Streben, also nehmen Sie meinen Rat als das, was er wert ist.

Meines Erachtens gibt es zwei Möglichkeiten, dieses Problem anzugehen.

Die erste (und wahrscheinlich einfachste) besteht darin, den Kontrollkästchen ein Ereignis hinzuzufügen, das den markierten Zustand in einem Array oder Objekt onchange speichert. Dann, auf Callback von der Ajax-Aktualisierung, wiederherstellen diese Staaten.

Der zweite Ansatz würde erfordern, dass die Ajax-Aktualisierung entweder als Post ausgeführt wird, so dass die Kontrollkästchen an den Server übermittelt werden, oder eine separate Ajax-Aktion, die ausgelöst wird, wenn ein Kontrollkästchen markiert ist. Bei beiden Optionen könnte die Ajax-Aktualisierung beim Rendern "wissen", welche Kontrollkästchen als markiert dargestellt werden sollen.

Wenn Sie sich für die erste Variante entscheiden, ist Javascript nicht sehr schwierig, vor allem wenn Sie eine gute Bibliothek (Jquery usw.) verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X