是否可以通过指定父组合ID来更新组合组件的子组件?例如。如果我有:
<composite:interface>
<composite:attribute name="value" type="..." required="true"/>
</composite:interface>
<composite:implementation>
<p:treeTable id="main-tree" ...>
...
</p:treeTable>
</composite:implementation>
并以某种方式使用它:
<my:comp id="composite-component" />
...
<p:ajax update="composite-component" />
这可能吗?现在,我看到的唯一方法是明确指定子组件ID:
<p:ajax update="composite-component:main-tree" />
答案 0 :(得分:15)
这可以通过在复合组件实现周围包装<div>
并设置div id=#{cc.clientId}
来完成:
<html ...>
<composite:interface>
...
</composite:interface>
<composite:implementation>
<div id="#{cc.clientId}">
...
</div>
</composite:implementation>
</html>
在使用页面中:
<my:comp id="composite-component" />
....
<h:commandButton value="Update first name">
<f:ajax execute="composite-component" render="composite-component">
</h:commandButton>
<p:ajax>
应相应地发挥作用。