2009-04-06 6 views
3

J'ai une table html dans mon application qui montre l'état de divers travaux en cours d'exécution dans le système. Chaque travail est associé à un état, par exemple un gif swirly pour exécuter des tâches. Les nouveaux travaux ont une case à cocher à côté d'eux qui permet à l'utilisateur de sélectionner et lancer le travail associé.Comment puis-je maintenir l'état de case à cocher sur une page qui est actualisée par Ajax?

La table est une div de rafraîchissement automatique struts2 (sx: div), elle rafraîchit toutes les quelques secondes pour refléter ce qui se passe actuellement avec les tâches.

Le problème est que lorsque la div rafraîchit, je perds cet état des cases à cocher.

Existe-t-il un moyen élégant de maintenir leur état? J'ai la possibilité d'appeler du javascript à la fin de l'ajax refresh en utilisant le système de dojo intégré au tag, mais je ne sais pas quelle est la meilleure façon de l'aborder.

+0

Du code s'il vous plaît? –

Répondre

1

Je ne suis pas très familier avec les entretoises alors prenez-moi des conseils pour ce que ça vaut.

Il y a deux façons d'aborder cela que je vois.

Le premier (et probablement le plus simple) consiste à ajouter un événement aux cases à cocher qui stocke l'état vérifié dans un tableau ou un objet onchange. Ensuite, sur rappel depuis le rafraîchissement ajax, restaurez ces états. La deuxième approche exigerait que le rafraîchissement ajax soit exécuté en tant que poste de sorte que les cases à cocher soient soumises au serveur, ou qu'une action ajax séparée se déclenche lorsqu'une case est cochée. Avec l'une ou l'autre de ces options, le rafraîchissement ajax pourrait "savoir" au rendu quelles cases à cocher afficher comme cochées.

Si vous décidez d'aller avec le numéro un, le javascript n'est pas très difficile, surtout si vous utilisez une bonne bibliothèque (jquery, etc.).

+0

J'ai expérimenté avec la réinitialisation des cases à cocher avec javascript et j'ai juste rencontré des problèmes avec struts2 n'exécutant pas les fragments de javascript retournés. À la fin, je viens de soumettre l'état de la case à cocher et de les réinitialiser dans la jsp du fragment retourné. Beaucoup plus simple et plus robuste. Merci pour les conseils Joel. –

Questions connexes