2009-04-06 12 views
3

Ich habe eine HTML-Tabelle in meiner Anwendung, die den Status der verschiedenen Jobs im System zeigt. Jedem Job ist ein Status zugeordnet, z. B. ein swirly GIF für laufende Jobs. Neue Jobs haben ein Kontrollkästchen neben dem der Benutzer den zugehörigen Job auswählen und starten kann.Wie kann ich den Checkbox-Status auf einer Seite beibehalten, die von Ajax aktualisiert wird?

Die Tabelle ist eine struts2 auto-Aktualisierung div (sx: div), es wird alle paar Sekunden aktualisiert, um anzuzeigen, was gerade mit den Jobs passiert.

Das Problem ist, dass wenn die div aktualisiert wird, ich diesen Zustand der Checkboxen verlieren.

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 das Tag eingebaut aufrufen, aber ich bin mir nicht sicher, was ist der beste Weg, um es anzugehen.

+0

Irgendein Code bitte? –

Antwort

1

Ich bin nicht sehr vertraut mit Struts also nimm mir Rat für was es wert ist.

Es gibt zwei Möglichkeiten, dies zu nähern, die ich sehe.

Die erste (und wahrscheinlich einfachste) ist das Hinzufügen eines Ereignisses zu den Kontrollkästchen, die den überprüften Zustand in einem Array oder Objekt onchange speichert. Stellen Sie diese Zustände dann beim Rückruf von der Ajax-Aktualisierung wieder her. Der zweite Ansatz würde erfordern, dass die Ajax-Aktualisierung entweder als Post ausgeführt wird, so dass die Checkboxen an den Server gesendet werden, oder mit einer separaten Ajax-Aktion, die ausgelöst wird, wenn ein Kontrollkästchen aktiviert ist. Mit jeder dieser Optionen könnte die Ajax-Aktualisierung beim Rendern "wissen", welche Kontrollkästchen zum Überprüfen gerendert werden sollen.

Wenn Sie sich entscheiden, mit Nummer eins zu gehen, ist das Javascript nicht sehr schwierig, vor allem, wenn Sie eine gute Bibliothek (jquery, etc.) verwenden.

+0

Ich experimentierte mit dem Zurücksetzen der Kontrollkästchen mit Javascript und ich traf nur Probleme mit struts2 nicht ausgeführt zurückgegebene Fragmente von Javascript. Am Ende habe ich den Checkbox-Status übergeben und ihn im jsp des zurückgegebenen Fragments zurückgesetzt. Viel einfacher und robuster. Danke für die Tipps Joel. –

Verwandte Themen