如何重新渲染<;用户界面:重复>;使用<;f:ajax渲染>;
我已经实现了由中继器创建的列表:如何重新渲染<;用户界面:重复>;使用<;f:ajax渲染>;,ajax,jsf,jsf-2,uirepeat,Ajax,Jsf,Jsf 2,Uirepeat,我已经实现了由中继器创建的列表: <ui:repeat value="#{projectData.paginator.list}" var="project"> <h:outputText value="#{project.title}" /> </ui:repeat> 还有一个过滤我的列表的按钮: <h:commandLink action="#{overviewController.filterNew}"> <h:outputT
<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>
ui:repeat id=“repeater”value=“#{projectData.paginator.list}”var=“project”>
但这不起作用
更新
ui:repeat id=“repeater”value=“#{projectData.paginator.list}”var=“project”>
也不起作用。。。也许我必须将动作方法(overviewController.filterNew)放入ajax标记中
更新2
也不行
也许不可能重新播放中继器?是否还有其他元素,如div标记或其他可以重新提交的元素 感谢您的帮助是:
- 使用Richfaces
- 使用Primefaces
ui:repeat id=“repeater”value=“#{projectData.paginator.list}”var=“project”>
为什么要用f:ajax来包装它?在这种情况下是多余的
确保组件周围有
标记
<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>
该
本身不会向输出生成任何HTML。
需要一个存在于HTML DOM树中的ID。将其放入带有id的
中,并引用它
这个怎么样:
<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>
我也试过了。我用h:form标签包围了整个部分:-(它什么也没死。-也许我必须把action方法(overviewController.filterNew)放进去进入ajax标签?-试试,为什么不?也不起作用!如果没有人看到错误,可能是jsf/ajax错误?ui:repeat
不支持id
属性。这很有意义,因为它不表示任何内容,它只是一个流控制标签。好吧,他需要将其包装起来,但对我来说,这似乎在这种情况下不起作用验证异常。在这种情况下,我的数据丢失。
<f:ajax render="repeater">
ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
<h:outputText value="#{project.title}" />
</ui:repeat>
<f:ajax />
<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>
<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>