<h:form id="formId">
<p:wizard id="wizardId">
<p:tab id="tabId">
<p:dataTable id="tableId">
<p:column>
<h:commandLink value="remove" update=""/>
</p:column>
</p:dataTable>
</p:tab>
</p:wizard>
</h:form>
我只需要更新< p:dataTable>没有整个表格.
我尝试使用@ form,@ parent,:formId:wizardId:tabId:tableId,但它们都没有按我的意愿工作.当我使用@form时,它正在检查我不需要做的验证.
我怎样才能做到这一点?
首先,这确实不会与< h:commandLink>一起使用,因为它根本不支持更新属性.也许您实际上打算使用< p:commandLink>?
一旦你修复了< h:commandLink>作为< p:commandLink>,然后转到这个答案:How to find out client ID of component for ajax update/render? Cannot find component with expression “foo” referenced from “bar”以了解如何在JSF ajax中引用组件.
在阅读完该答案之后,您应该已经发现数据表位于以下特定代码段中:formId:tableId.所有,所有这些,以下应该做:
<p:commandLink value="remove" update=":formId:tableId" />
请注意,在PrimeFaces 3.3之前,< p:dataTable>的ajax更新中存在错误.在某些复杂的UI组合中.这是PrimeFaces 3.4中的fixed.如果您遇到这个问题并且无法升级到PrimeFaces 3.4,那么您需要将表格包装在某些< h:panelGroup id =“tablePanelId”>然后使用update =“:formId:tablePanelId”代替.