Jsf 2 无法在复合组件内使用p:OverlyPanel
我正在尝试创建一个复合组件,将值显示为OverlyPanel。但它返回以下错误; 在视图中找不到组件“j_idt58:reviewDataTable:0:overrideCol” xhtml:(复合组件)Jsf 2 无法在复合组件内使用p:OverlyPanel,jsf-2,composite-component,Jsf 2,Composite Component,我正在尝试创建一个复合组件,将值显示为OverlyPanel。但它返回以下错误; 在视图中找不到组件“j_idt58:reviewDataTable:0:overrideCol” xhtml:(复合组件) #{cc.attrs.forValue} 它在另一页中使用: <h:form> .... ... <p:dataTable .....> .... <p:column sortBy="#{dto.isSameCycleOverride}" width=
#{cc.attrs.forValue}
它在另一页中使用:
<h:form>
....
...
<p:dataTable .....>
....
<p:column sortBy="#{dto.isSameCycleOverride}" width="100">
<f:facet name="header">
Override
</f:facet>
<h:commandLink id="overrideCol" binding="#{overrideCol}"
value="#{(dto.isSameCycleOverride) ? 'Yes' : 'No'}" />
<comp:overrideVersionDetails forId="#{overrideCol.clientId}"
forValue="#{dto.message}" />
</p:column>
....
</p:dataTable>
</h:form>
....
...
....
推翻
....
非常感谢您的帮助。我不使用Primefaces,但使用RichFaces时,我会使用:
<comp:overrideVersionDetails forId="#{rich:clientId('overrideCol')}"
forValue="#{dto.message}" />
做你想做的事
在SO的帮助下:
看来你可以做到这一点:
...
<h:commandLink id="overrideCol" value="#{(dto.isSameCycleOverride) ? 'Yes' : 'No'}" />
<comp:overrideVersionDetails forId="#{p:component('overrideCol')}"
forValue="#{dto.message}" />
...
。。。
...
现在看看这是否比在数据表中使用绑定更好
...
<h:commandLink id="overrideCol" value="#{(dto.isSameCycleOverride) ? 'Yes' : 'No'}" />
<comp:overrideVersionDetails forId="#{p:component('overrideCol')}"
forValue="#{dto.message}" />
...