问题描述
我有一个带<p:dataTable>
的jsf 2.0页面,并且在此表内有一个<p:commandButton>
,应使用ajax请求从该表中删除一个项目.删除本身可以正常工作,但我不知道如何为渲染update
识别周围的<p:dataTable>
.
I have a jsf 2.0 page with a <p:dataTable>
and inside this table a <p:commandButton>
that should delete an item from this table with an ajax request. The deleting itself works fine, but I do not know how to identify the surrounding <p:dataTable>
for the 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>
(由于其他原因,它不起作用)
( it did not worked for an other reason)
所以我的问题是如何解决周围的命名容器,而无需使用以根UIComponent
开头的绝对路径(因为那样的话,我需要命名很多命名容器.)
So my question is how to address the surrounding naming container, WITHOUT using a absolute path that starts at root UIComponent
(because then I would need to name a lot of naming containers.)
推荐答案
假定表单中的所有内容都具有prependId="false"
作为属性,则dataTable
的update属性值应该起作用.
Assuming that you have everything within a form that has prependId="false"
as an attribute, then the update attribute value of dataTable
should work.
子组件的PrimeFaces更新属性可识别父dataTable组件的ID.此外,您还可以在PrimeFaces更新中使用@parent
值来重新呈现子元素的直接父容器.
The PrimeFaces update attribute of child components recognizes the id of a parent dataTable component. Furthermore you can also use the @parent
value within PrimeFaces update to re render a child elements immediate parent container.
这篇关于如何在jsf中解决周围的命名容器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!