2010-11-19 27 views
0

Je travaille actuellement sur un écran ZK avec une zone de liste contenant des groupes. Puisque vous ne pouvez pas (autant que je sache) utiliser DataBinder pour définir le modèle avec un GroupsModel, j'en crée un manuellement et j'appelle setModel. Pour configurer les Listgroups et les Listitems, j'ai besoin de créer un ListitemRenderer, ce que j'ai fait. Le problème est que chaque fois que vous ouvrez ou fermez un groupe à l'écran, il communique avec le serveur pour définir le groupe comme étant ouvert et appelle à nouveau ListitemRenderer pour chaque ligne visible. Cela entraîne une interface laggy pour l'utilisateur.Performances de la zone de liste groupée ZK

Est-il possible d'obtenir ZK pour mettre en cache le contenu des Listgroups et des Listitems sur le client de sorte que les groupes d'ouverture/fermeture ne parlent pas au serveur et ne rendent pas chaque rangée à nouveau? Avec ce système, le contenu des lignes ne changera pas jusqu'à ce que l'utilisateur effectue une autre recherche, ou si elles glisser/déposer des éléments.

Editer: J'ai fini par construire moi-même les Listgroups et Listitems et les ajouter avec appendChild. Pas besoin d'un modèle ou d'un moteur de rendu, tout est fait sur le client ce qui signifie que c'est très accrocheur. Ce serait quand même bien de savoir comment cela pourrait être fait avec un modèle/rendu.

Répondre

1

Je suggère que vous pouvez utiliser la méthode renderall().

e, g myListbox.getItemRenderer(). RenderAll()

OMI, si votre modèle contient beaucoup de données, cette action peut-être plus lent que l'action par défaut.