我在Mojarra-2.1.10上使用primefaces PrimeFaces-3.4,我的整页布局是这样的。我怎样才能在顶部做一个按钮,它会折叠西部布局单元?
感谢您的帮助。
PS,早期假设可以写这样的东西:
<layoutUnit position="west" widgetVar='westlayout'> ... </layoutUnit>
//button in the top
<button onlick="westlayout.collapse()"></button>
但不幸的是,layoutUnit不存在widgetVar属性。
更新1:发现类似的问题,尝试过。对我不起作用,问题是带有更新属性的按钮找不到具有此类标识符的文本,我在一个布局单元中尝试,找到了标识符,但也没有用。
根据布局客户端 API,您可以通过布局 widget 切换布局单元War:
<p:layout fullPage="true" widgetVar="layoutWdgt">
<p:layoutUnit position="north" size="100" header="Top" resizable="true" closable="true" collapsible="true">
<h:form>
<p:commandButton value="Toggle" onclick="layoutWdgt.toggle('west')"/>
</h:form>
</p:layoutUnit>
....
<p:layoutUnit position="west" size="200" header="Left" resizable="true" closable="true" collapsible="true">
<h:form>
<h:outputText value="West Layout unit"/>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center">
<h:outputText value="Center Layout unit"/>
</p:layoutUnit>
</p:layout>
编辑
从PrimeFaces 4开始,仍然支持id映射,但已弃用,取而代之的是PF('XXX')
对于 PrimeFaces 5.0 及更高版本,您需要使用 PF widgetVar 来调用客户端 API。因此,与其使用 layoutWdgt.toggle('west') 来切换西布局单元,不如使用 PF('layoutWdgt').toggle('west')<</strong>
使用 Primefaces 6.1:
<p:layout style="min-width:400px;min-height:200px;" widgetVar="layoutWdgt">
<p:layoutUnit position="west" size="100" minSize="40" maxSize="200" collapsible="true">
West
<p:commandButton value="Collapse" onclick="PF('layoutWdgt').toggle('west')"/>
</p:layoutUnit>
<p:layoutUnit position="center">
Center
</p:layoutUnit>
</p:layout>