如何从p:dataTable本身内部更新p:dataTable?

前端之家收集整理的这篇文章主要介绍了如何从p:dataTable本身内部更新p:dataTable?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<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”代替.

猜你在找的Ajax相关文章