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代わりに、ブロックしないのはなぜですか?div

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

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

次のようにprimefacesユーザーズガイドについて: -

フル ページ レイアウトのフォーム

フォームとフル ページ レイアウトを操作する場合、生成された 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 に答える