我在Mojarra-2.1.10上使用primefaces PrimeFaces-3.4,我的整页布局就像this。我如何在顶部制作一个按钮,这将折叠西部layoutUnit?
感谢您的帮助。
PS,早期认为可以这样写:
<layoutUnit position="west" widgetVar='westlayout'> ... </layoutUnit>
//button in the top
<button onlick="westlayout.collapse()"></button>
但遗憾的是,layoutUnit不存在widgetVar属性。
更新1:找到similar question,尝试过。没有为我工作,问题是具有更新属性的按钮无法找到具有此类标识符的文本,我在一个layoutUnit中尝试了,找到了标识符,但也没有用。
答案 0 :(得分:5)
根据Layout Client Side API,您可以通过 layout widgetWar切换layoutUnit:
<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>
EDITED
从PrimeFaces 4开始,仍然支持id映射,但弃用了PF('XXX')
对于PrimeFaces 5.0及更高版本,您需要使用PF widgetVar来调用客户端API。因此,不需要使用layoutWdgt.toggle('west')来切换西部布局单元,而是需要使用 PF('layoutWdgt')。toggle('west')
答案 1 :(得分:0)
使用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>