JSF2 + PF:打开或显示时更新对话框标题

时间:2013-07-22 17:19:56

标签: jsf-2 primefaces dialog modal-dialog

有没有办法在打开时更新对话框标题文本?我曾经使用dynamic属性并将其设置为true。但是由于Form和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() {
        ....
    }
}

1 个答案:

答案 0 :(得分:1)

我最终将标题文本包装在PF outputPanel中,autoUpdate = true,它对我有用。

<p:dialog>
    <f:facet name="header">
        <p:outputPanel autoUpdate="true">#{cc.headerText}</p:outputPanel>
    </f:facet>
    ....
</p:dialog>