2010-02-04 4 views
2

J'ai fait un bouton en utilisant HTMLPanelGrid et HTMLAjaxSupport (a4j: support du bean backing) qui répond à 'onclick'.En utilisant a4j: support pour rendre cliquable PanelGrid, après le clic la page ne se rafraîchit pas

L'eventlistener enregistré avec HTMLAjaxSupport ajoute un composant à la page (un composant différent avec un bean de support différent).

Le problème est que l'addition n'est pas visible tant que je n'ai pas actualisé la page ou appuyé sur un autre bouton qui actualise l'affichage. J'essaie de comprendre comment rafraîchir la page. Pour résumer, je voudrais savoir comment rafraîchir un composant visuel sauvegardé par un bean backing après que le backing bean ait changé. (L'actualisation doit avoir lieu après avoir cliqué sur un composant pris en charge par ajax)

Merci!

Répondre

3

Tous les points <a4j: ont l'attribut reRender. Il doit pointer vers le id de l'objet/zone que vous souhaitez actualiser.

Notez que si un composant a été masqué, vous devez indiquer à nouveau son parent . Par exemple:

<h:panelGroup id="newComponentWrapper"> 
<!-- your component goes here --> 
</h:panelGroup> 
... 
<a4j:support reRender="newComponentWrapper" .. /> 

Et un autre conseil - évitez d'utiliser l'attribut binding - dans 95% des cas, vous pouvez aller sans elle.

+0

Merci! A propos de l'attribut de liaison - Comment ajouter et modifier des composants dynamiquement sans cela? (C'est la principale raison pour laquelle j'utilise la liaison actuellement) – Ben

+1

utilisez simplement 'rendered =" # {condition} 'pour un composant, puis changez la condition et reRender – Bozho

Questions connexes