2009-02-11 4 views
0

Je sors sur un membre ici, et en espérant que quelqu'un a utilisé IT Mill Toolkit avant:Informations sur les articles mises à jour dans le conteneur, comment puis-je les actualiser?

J'ai une table avec un tas d'éléments à l'intérieur. J'édite l'un d'entre eux - comment puis-je actualiser et redessiner la Table? J'ai essayé avec requestRepaint(), requestRepaintAll() à la fois sur la table et la mise en page qui contient la table, mais je n'arrive pas à l'actualiser. Lorsque je recharge la page ou que je la fais défiler d'avant en arrière (de sorte que l'élément passe de la vue à la vue), l'élément a été mis à jour.

Existe-t-il un moyen d'obtenir par programme la table pour actualiser sa vue actuelle?

Répondre

1

Le conteneur d'éléments n'implémente-t-il pas cette fonctionnalité? Dites que vous utilisez un IndexedContainer dans votre Table. AFAIK le IndexedContainer remarque lorsque vous modifiez le contenu, et à son tour envoie un avis à tout ce qui l'utilise comme une source de données (= table). Donc, une table normale devrait ramasser ça.

Modifier- vérifié ceci:

IndexedContainer implémente Property.ValueChangeNotifier

Tableau implémente ValueChangeListener qui gère un requestRepaint(). En d'autres termes, votre conteneur doit également implémenter le notificateur de sorte que le repeint automatique puisse être appelé.

+0

J'ai implémenté mon propre conteneur. Cela pourrait être le problème :) –

+0

requestRepaint() est le bon, mais il ne fera rien s'il évalue que le contenu n'a pas changé. valueChange (event) dans Table fait resetPageBuffer(); et refreshRenderedCells(); avant d'appeler requestRepaint(). Là se trouve le problème pourquoi simple repaint ne travaillera pas.Use valueChangeNotifier –

Questions connexes