2011-07-18 4 views
1

Existe-t-il un moyen de mettre à jour tous les composants ou dois-je sélectionner manuellement chaque identifiant? J'ai un script de détection ajax html5 et je ne veux pas avoir à mettre à jour chaque composant via l'ID.Ajax Update Tous les composants avec JSF

Merci

Répondre

3

Utilisez simplement l'ID du composant parent commun.

<h:panelGroup id="someParent"> 
    <h:someComponentToUpdate ... /> 
    ... 
    <h:someComponentToUpdate ... /> 
    ... 
    <h:someComponentToUpdate ... /> 
    ... 
</h:panelGroup> 
... 
<f:ajax render="someParent" /> 

Ou utilisez @all pour actualiser la page entière.

<f:ajax render="@all" /> 
+0

Cela n'affecte pas le bouton de retour du navigateur. Est-il possible de rendre tous les composants sans définir l'historique du navigateur? – alexander

2

Si vous devez appeler une base de mise à jour d'un événement, je vous recommande d'utiliser PrimeFaces. Découvrez leur vitrine au http://www.primefaces.org/showcase-labs/ui/home.jsf. montrer ci-dessous comment utiliser les composants de mise à jour lorsqu'un bouton est cliquez sur

<p:commandButton value="Test" update="container" actionListener="#{myBean.process}"/> 

ont ensuite un récipient d'emballage enrouler autour de tous les composants que vous souhaitez mettre à jour comme BalusC ci-dessus montre.

<h:panelGroup id="container"> 
    ... 
    // All components you want to update here. 
</h:panelGroup> 
+0

Juste une petite chose ... n'est-il pas préférable d'ajouter layout = "block" pour rendre un div? otherwiste h: panelGroup rendra une durée et si vous avez des divs à l'intérieur de cette plage, le html sera invalide. – marcel