gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:31:32 24 4
gpt4 key购买 nike

<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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com