Primefaces,如何折叠布局单元与另一个按钮



我在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>

div class="ans>

使用 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>

最新更新