我有一个带有<p:dataTable>
的jsf 2.0页面,在此表格中有一个<p:commandButton>
,它应该使用ajax请求从该表中删除一个项目。删除本身工作正常,但我不知道如何识别渲染<p:dataTable>
的周围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
开始的绝对路径(因为那时我需要命名很多命名容器。)
答案 0 :(得分:3)
假设您在表单中包含prependId="false"
作为属性的所有内容,则dataTable
的更新属性值应该有效。
子组件的PrimeFaces update属性识别父dataTable组件的id。此外,您还可以使用PrimeFaces更新中的@parent
值来重新呈现子元素直接父容器。