Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重新渲染<;用户界面:重复>;使用<;f:ajax渲染>;_Ajax_Jsf_Jsf 2_Uirepeat - Fatal编程技术网

如何重新渲染<;用户界面:重复>;使用<;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>