有没有办法在打开时更新对话框标题文本?我曾经使用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() {
....
}
}
答案 0 :(得分:1)
我最终将标题文本包装在PF outputPanel中,autoUpdate = true,它对我有用。
<p:dialog>
<f:facet name="header">
<p:outputPanel autoUpdate="true">#{cc.headerText}</p:outputPanel>
</f:facet>
....
</p:dialog>