1

我在 Mojarra-2.1.10 上使用 primefaces PrimeFaces-3.4,我的整页布局是这样的。我如何在顶部制作一个按钮,它将折叠西 layoutUnit?

感谢帮助。

PS,早期假设可以这样写:

<layoutUnit position="west" widgetVar='westlayout'> ... </layoutUnit>

//button in the top
<button onlick="westlayout.collapse()"></button>

但不幸的是,layoutUnit 不存在 widgetVar 属性。

更新1:发现类似的问题,试过了。对我没用,问题是具有更新属性的按钮找不到具有此类标识符的文本,我在一个 layoutUnit 中尝试过,找到了标识符,但也没有用。

4

2 回答 2

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>

已编辑

从 PrimeFaces 4 开始,仍然支持 id 映射,但不推荐使用 PF('XXX')

对于 PrimeFaces 5.0 及更高版本,您需要使用 PF widgetVar 来调用客户端 API。因此,您需要使用PF('layoutWdgt').toggle('west')而不是使用 layoutWdgt.toggle('west') 切换西布局单元

于 2012-10-11T04:50:10.720 回答
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>
于 2017-06-19T17:48:52.640 回答