0

ダイアログを開いたときにヘッダー テキストを更新する方法はありますか? 以前は属性を使用しdynamicて true に設定していました。しかし、フォームと Bean の状態 (ダイアログの内部にフォームがある) の問題により、その使用を断念しなければなりませんでした。js 属性へのフックがありますonShowが、そこからヘッダー テキストを更新する方法がわかりません。

これは、私のダイアログがどのように見えるかを簡略化したものです。これは、複合コンポーネントとして定義されます (表示されていません)。

<composite:interface componentType="addEditDialog">
...
</composite:interface>

<composite:implementation>
    <p:dialog>
        <f:facet name="header">
            #{cc.headerText}
        </f:facet>
        ....
    </p:dialog>
     ...
</composite:implementation>

開いたときに実際のヘッダー テキストを決定するバッキング NamingContainer クラスに、いくつかのカスタム コードがあります。

@FacesComponent("addEditDialog")
public class AddEditCompositeComponent extends UINamingContainer {

    public String getHeaderText() {
        ....
    }
}
4

1 に答える 1

1

autoUpdate=true を使用してヘッダー テキストを PF outputPanel にラップすることになりました。

<p:dialog>
    <f:facet name="header">
        <p:outputPanel autoUpdate="true">#{cc.headerText}</p:outputPanel>
    </f:facet>
    ....
</p:dialog>
于 2013-07-22T19:49:08.540 に答える