Primefaces对话框打开后更新

时间:2013-03-06 10:35:39

标签: ajax primefaces dialog

我想在打开后更新内容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();
    }

2 个答案:

答案 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()"