Primefaces 3を使用するプロジェクトに取り組んでいます。5(そう、かなり古いバージョンです)。私が実装したかったのは、Primefaces要素の属性を変更するJavascriptの関数です。することは可能ですか?
私が持っているのは、次のように定義されたパネルです。
<p:panel id="mypanel" widgetVar="mypanelWidget" header="A title here" toggleable="true" toggleOrientation="vertical" collapsed="true">
そして、私の考えは変えることです collapsed="true"
に collapsed="false"
Javascriptを使用します。
この必要性は、パネルを更新するajax呼び出しのために急増し、更新されると、折りたたまれたように見えます。やること mypanelWidget.expand()
私のページが非常にアニメーション化されるので、コールバック時はお勧めできません。
回答:
回答№1は22つのオプション:
単にELを使用する
collapsed
ハードコードを指定する代わりに、いくつかのモデルの状態をチェックする属性true
.<p:panel ... collapsed="#{not bean.ajaxMethodCalled}">
それにより、あなたはそれを確認します
isAjaxMethodCalled()
返品true
対象のajaxメソッドが呼び出された場合。 必ずしもブール値のプロパティである必要はありません。目的のブール値の結果を評価する限り、HTTPリクエストパラメータマップのチェックなど、何でもかまいません。ajax呼び出し中にパネル自体を更新しないでください。代わりに、その内容を更新してください。
<p:panel ...> <h:panelGroup layout="block" id="panelContents"> ... <p:ajax update="panelContents" /> ... </h:panelGroup> </p:panel>
このようにして、HTML DOMツリー内のパネルのHTML表現の状態はそのまま残ります。