3

我有一个 jsf 2.0 页面,其中包含 a<p:dataTable>和在此表中 a<p:commandButton>应该使用 ajax 请求从该表中删除一个项目。删除本身工作正常,但我不知道如何识别<p:dataTable>render的周围环境update

<lots of naming containers>
...
   <p:dataTable id="dataTable" var="userItem" ... />
     <p:column>

        <p:commandButton
             action="#{userController.doDelete(userItem.id)}"
             value="delete" 
             update="?????"/>  <!-- How to address the dateTable? -->

     </p:column>
   </p:dataTable>
<.lots of naming containers>

我已经尝试update="dataTable"过了,但 mojarra 没有找到编辑:由于其他原因它没有工作

所以我的问题是如何解决周围的命名容器,而不使用从根开始的绝对路径UIComponent(因为那样我需要命名很多命名容器。)

4

1 回答 1

3

假设您在具有prependId="false"属性的表单中拥有所有内容,那么更新属性值dataTable应该可以工作。

子组件的 PrimeFaces 更新属性识别父 dataTable 组件的 id。此外,您还可以使用@parentPrimeFaces 更新中的值来重新渲染子元素直接父容器。

于 2012-08-23T11:02:25.067 回答