3

我在问如何实现更新循环的特定元素?

例如

<h:form>
    <ui:repeat var="element" value="#{bean.elements}" varStatus="status">
         <h:outputtext value="#{element.text}" id="#{element.id}" />
         <p:commandLink update="#{element.id}" >
             <h:outputtext value="UpdateTextField #{element.id}" />
         </p:commandLink>
    </ui:repeat>
</h:form>

我知道 status.index 在视图渲染后不起作用。此外,“动态”索引设置也不起作用,因为它是视图渲染的......但是当点击按钮时,我怎样才能实现它,它会更新(ajax)输出文本?这只有在 c:forEach 中才有可能吗?

它的 ViewScoped 和表单必须在循环之外。否则我会用 update="@form" 解决它,但这里不可能

谢谢你的帮助!

4

1 回答 1

2

由于两者都ui:repeatc:forEach元素生成不同的动态组件 ID,因此您不能保证从外部生成的所有项目中更新单个项目。

我认为解决此类问题的最佳方法是放置一个h:panelGroup周围ui:repeatc:forEach 自身并更新h:panelGroup自身。

于 2013-10-17T13:03:10.603 回答