Sei*_*dis 5 java ajax jsf primefaces
我有两个数据表,有两种形式,forma和formg.每个表单里面都有一个p:dataTable
,groupsa和groupsg.在每个DataTable有显示图像(自定义列h:graphicImage
)称为蚕豆和favg.
单击图像时,将更新来自其他数据表的图像.
<p:ajax event="click" listener="#{agent.toogleFavorite}"
update="fava, :formg:groupsg:favg" />
Run Code Online (Sandbox Code Playgroud)
没有冒号,我得到一个例外:
javax.faces.FacesException: Cannot find component with identifier "forma:agentsa:fava" referenced from "groupsg:0:favg".
Run Code Online (Sandbox Code Playgroud)
formg:groupsg:favg和:formg:groupsg:favg有什么区别?
我使用的是JSF2.0和PrimeFaces 3.4.
Bal*_*usC 10
该:
前缀将使它成为绝对的客户ID,从而将相对于搜索UIViewRoot
,而不是最近的父NamingContainer
.当您想要引用不在同一个最近父级内的组件时,您应该(必须)使用它NamingContainer
.的<h:form>
和<h:dataTable>
(和<p:dataTable>
)是NamingContainer
组件.
另请参见如何查找ajax update/render的组件的客户端ID?无法找到具有"bar"引用的表达式"foo"的组件以进行详细说明.
如果要从页面根目录中搜索ID,请在开头使用冒号.当调用更新的组件不在正在更新的组件的同一NamingContainer中时,这是必要的.
当您想要相对搜索相同的NamingContainer时,请不要使用它.当两个组件(调用更新的组件和正在更新的组件)位于同一个NamingContainer中时,您可以这样做.
顺便说一句,"NamingContainers"是所有预先考虑自己的ID,以他们的子组件的组件,如<h:form>
,<p:dataTable>
,<p:accordionPanel>
,等.试想一下,在生成的HTML,看看是否父前面加上其ID为它的子.
归档时间: |
|
查看次数: |
2493 次 |
最近记录: |