我在我的应用程序中使用可调整大小的primefaces。我知道如果我们设置containment = true,则包含将是组件的父级。但我希望我的组件包含在祖父母中 下面是代码:
<p:dataTable id="tab" value="#{listOfDays}">
<p:column>
<h:outputText value="#{day}"/> //from MON to SUN
</p:column>
<p:column>
<p:outputPanel id="pnl">
<ui:repeat id="loop" value="somelist">
<p:commandLink id="link"/>
<p:resizable for="link" listener="#{calllistener}" containment="true"/>
</ui:repeat>
</p:outputPanel>
</p:column>
</p:dataTable>
我希望在调整大小时将commandlink限制为outputPanel。因为我将包含设置为true它限制为ui:repeat,因为它是commandlink的closet parent。所以,有什么方法可以限制命令链接到祖父母,即在这种情况下,当commandlink被调整大小时,outputPanel ??
修改 我可以像这样
在支持bean中设置父组件 public void handleResize(ResizeEvent event){
if(first time) {
resizable =(Resizable)(event.getComponenet());
resizable.setParent(event.getParent().getParent());
}
sysout(resizable.getClientId());
}
我可以在resize上打印父级的客户端ID,但它不包含在祖父母中。 任何帮助是极大的赞赏。
修改 让我明白我想要实现的目标。我正在尝试创建一个时间调度程序(不是主要面中的调度程序组件)
在代码中,outputpanel有一个图像,表示从00:00到23:59的时间 outputpanel可以有任意数量的commandLink,因此ui:repeat。 commandlink表示时间间隔,例如从12:00到20:00,我们也可以改变时间间隔,从而可以调整大小。我不希望timeinterval(commandlink)退出outputPanel。
提前感谢:)
答案 0 :(得分:1)
您可以使用#{component.clientId}
有关详细信息,请参阅此处:How to refer to a JSF component Id in jquery?