0

我有以下布局:

<h:body>
    <p:outputPanel layout="block" id="page" style="width:100%;height:100%;">
        <h:panelGroup layout="block">

            <p:layout fullPage="true">
                <p:layoutUnit id="top" position="north" size="60">
                    ...
                </p:layoutUnit>

                <p:layoutUnit id="left" position="west" size="145" header="Menu" resizable="true" collapsible="true">
                    ...
                </p:layoutUnit>

                <p:layoutUnit id="center" position="center">
                    ...
                </p:layoutUnit>

            </p:layout>
        </h:panelGroup>
    </p:outputPanel>
</h:body>

在中心布局单元中,我定义了一些 blockUI 组件:

<p:blockUI block=":page" trigger="searchButton">

我想阻止整个页面,但是带有块层的 div 在 layoutUnit div 下。所以我只能在布局单元之间的空间中看到这个 blockUI 层,我想在顶部看到它作为第一层。

4

4 回答 4

2

添加显示:块;像这样的 outputPanel 样式:

<p:outputPanel layout="block" id="page" style="display:block;">
于 2012-10-18T21:26:02.023 回答
0

为什么不阻止p:layout而不是将其包装在 a 中div并阻止包装器?

<p:layout id="page" ...

<p:blockUI block=":page" ...
于 2012-09-18T12:25:03.827 回答
0

关于primefaces用户指南如下: -

整页布局中的表单

使用表单和整页布局时,避免使用包含 layoutunits 的表单,因为生成的 dom 可能不一样。所以以下是无效的

<p:layout fullPage="true">
<h:form>
    <p:layoutUnit position="west" size="100">
        <h:outputText value="Left Pane" />
    </p:layoutUnit>
    <p:layoutUnit position="center">
        <h:outputText value="Right Pane" />
    </p:layoutUnit>
</h:form>

布局单元必须有它自己的形式,也避免因为同样的原因尝试更新布局单元,而是更新它的内容。

然后我们无法管理 p:layout 或 p:layoutUnit,因为它们不在表单下。

于 2012-10-09T11:00:36.033 回答
0

该问题应被接受为最佳答案。事实上,它的工作原理与发布的一样。布局块或样式 display:block 不是必需的,它已经是 p:outputPanel 的默认设置。但是宽度和高度很重要。

所以我最终使用:

<p:outputPanel id="page" style="width:100%;height:100%;">
于 2019-11-18T14:47:38.043 回答