ajax - 如何ajax更新p :dataTable from inside the p:dataTable itself?

标签 ajax jsf-2 datatable primefaces

<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> ,仅仅是因为它不支持 update属性。也许您实际上打算使用 <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 组合中。这是 fixed在 PrimeFaces 3.4 中。如果您恰好遇到这个问题并且无法升级到 PrimeFaces 3.4,那么您需要将表包裹在一些 <h:panelGroup id="tablePanelId"> 中。然后使用 update=":formId:tablePanelId"反而。

关于ajax - 如何ajax更新p :dataTable from inside the p:dataTable itself?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516397/

相关文章:

jsf-2 - Primefaces 3.2 客户端 API 文档在哪里?

C# 字符串连接

c# - 使用数据表和 SqlBulkCopy 获取将 bool 值写入 sql 的异常

javascript - PHP Ajax 从表中删除一条记录

JSF2、i18n 和 SEO

jsf - 如何放弃 PrimeFaces 对话框的透明度?

C# 无法读取数据集中的 xml

javascript - 单击监听器以 ajax 加载内容。纯javascript

javascript - 如何计算添加元素?

javascript - 在给定的 url 上提交脚本数据(var = url)