我想在打开后更新内容primefaces对话框。可能吗?我的示例代码如下。
<p:dialog widgetVar="pictureSaveDialog" id="pictureDialog" closable="false" >
<p:outputPanel id="saveDialogPanel">
<p:selectOneRadio id="options" value="#{pictureDefinitionsView.radioValue}" >
<f:selectItem itemLabel="FILE" itemValue="FILE" />
<f:selectItem itemLabel="" itemValue="URL" />
<p:ajax update="fileUpload1 fileUpload2" event="click" process="options" />
</p:selectOneRadio>
<p:outputPanel id="fileUpload1" rendered="#{pictureDefinitionsView.selectedFileUpload}"> File </p:outputPanel>
<p:outputPanel id="fileUpload2" rendered="#{pictureDefinitionsView.selectedUrlUpload}"> URL </p:outputPanel>
</p:outputPanel id="saveDialogPanel">
Bean方法。
public boolean isSelectedFileUpload(){
return radioValue.equals("FILE");
}
public boolean isSelectedUrlUpload(){
return !isSelectedFileUpload();
}
答案 0 :(得分:9)
您可以定义只更新对话框的p:remoteCommand
,并在onShow
属性中调用该命令:
<p:remoteCommand name="updateDialog" update="saveDialogPanel"/>
<p:dialog widgetVar="pictureSaveDialog" id="pictureDialog" closable="false" onShow="updateDialog()">
如果您的saveDialogPanel
位于某个命名容器中,则需要添加适当的前缀以匹配组件的ID。
答案 1 :(得分:3)
您最好在打开对话框内容之前刷新
你的p:commandButton / p:ajax应该有以下内容:
update="pictureDialog" onsuccess="pictureSaveDialog.show()"