我已经实现了由转发器创建的列表:
<ui:repeat value="#{projectData.paginator.list}" var="project">
<h:outputText value="#{project.title}" />
</ui:repeat>
和一个过滤我的列表的按钮:
<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
</h:commandLink>
那么,在单击命令链接(使用AJAX)后,是否有一种简单的方法只渲染我的转发器: - )
我试过以下:
<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>
但这不起作用..
<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>
也不起作用......也许我想把动作方法(overviewController.filterNew)放到ajax标签中?
<f:ajax event="click" render="repeater">
<h:commandLink action="#{overviewController.filterEBus}">
<h:outputText value="EBusiness" />
</h:commandLink>
</f:ajax>
也不起作用!
也许不可能重新报复转发器?是否有另一个元素,如div标签或可以重新渲染的东西???
...
感谢您的帮助
答案 0 :(得分:26)
<ui:repeat>
本身不会为输出生成任何HTML。 <f:ajax render>
需要HTML DOM树中存在的ID。将其放在带有<h:panelGroup>
的{{1}}中,然后引用它。
id
答案 1 :(得分:4)
是:
<a4j:commandButton reRender="targetId" />
<f:ajax event="click" render="targetId">
<p:ajax>
答案 2 :(得分:2)
<f:ajax render="repeater">
ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
<h:outputText value="#{project.title}" />
</ui:repeat>
<f:ajax />
为什么用f:ajax包装它?在这种情况下,这是多余的。
确保您的组件被<h:form>
标记
<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>
答案 3 :(得分:0)
这个怎么样:
<ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
<h:outputText value="#{project.title}" />
</ui:repeat>
<h:commandLink>
<h:outputText value="Filter List" />
<f:ajax render="repeater" listener="#{overviewController.filterNew}" />
</h:commandLink>