Comment re-rendre <ui:repeat> à l'aide de <f:ajax render>
J'ai mis en place une liste créée par un répéteur:
<ui:repeat value="#{projectData.paginator.list}" var="project">
<h:outputText value="#{project.title}" />
</ui:repeat>
et un Bouton filtres à ma liste:
<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
</h:commandLink>
Alors, est-il un moyen facile de rendre uniquement mon répéteur après avoir cliqué sur le lien de commande (avec AJAX) 🙂
J'ai essayé suivantes:
<f:ajax render="repeater">
ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
<h:outputText value="#{project.title}" />
</ui:repeat>
<f:ajax />
<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
<f:ajax event="click" render="repeater"/>
</h:commandLink>
mais cela ne fonctionne pas..
Mise à jour
<h:form>
ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
<h:outputText value="#{project.title}" />
</ui:repeat>
<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
<f:ajax event="click" render="repeater"/>
</h:commandLink>
</h:form>
ne fonctionne pas non plus... Peut-être que je vha de mettre la méthode action (overviewController.filterNew) dans l'ajax tag?
Mise à jour 2
<f:ajax event="click" render="repeater">
<h:commandLink action="#{overviewController.filterEBus}">
<h:outputText value="EBusiness" />
</h:commandLink>
</f:ajax>
Ne fonctionne pas!!!!
Peut-être qu'il n'est pas possible alors rendre à nouveau un répéteur ? est-il un autre élément comme une balise div ou quelque chose qui peut être réaffichées???
...
Merci pour votre aide
Peut-être que je vha de mettre la méthode action (overviewController.filterNew) dans l'ajax de balise? - essayer, pourquoi pas?
Ne fonctionne pas non plus! Si personne ne voit une erreur peut-être il ya un jsf/ajax bug?
Ne fonctionne pas non plus! Si personne ne voit une erreur peut-être il ya un jsf/ajax bug?
OriginalL'auteur Sven | 2010-08-23
Vous devez vous connecter pour publier un commentaire.
La
<ui:repeat>
lui-même ne génère pas de code HTML à la sortie. Le<f:ajax render>
s'attend à un ID qui est présent dans le DOM HTML arbre. Mettre dans un<h:panelGroup>
avec unid
et de référence à la place.Mais pour moi, il semble que cela ne fonctionne pas dans le cas d'une exception de validation. Dans ce cas, mes données sont perdues.
OriginalL'auteur BalusC
Oui:
<a4j:commandButton reRender="targetId" />
<f:ajax event="cliquez sur" render="targetId">
<p:ajax>
merci mais ne fonctionne pas :-/
OriginalL'auteur Bozho
pourquoi avez-vous envelopper avec f:ajax? C'est redondant dans ce cas.
Assurez-vous que vos composants sont entourés par
<h:form>
tagOriginalL'auteur Dejell
Comment à ce sujet:
ui:repeat
ne prend pas en charge laid
attribut. Ce qui est logique puisqu'il ne représente rien, c'est juste un contrôle de flux de la balise.Ok, donc il faut l'envelopper dans un <h:panelGroup>
OriginalL'auteur amorfis