2

在我的页面中,我试图在单击按钮后显示一个确认对话框。在确认对话框中,我使用属性消息来显示它,单击按钮后该消息将被取值。所以我这样做了:

 <p:commandButton value="Delete" update="testPlanetree" id="deleteBtn" 
   disabled="#{projectTestManagementMB.disable}" oncomplete="deleteConfirmation.show()"
    action="#{projectTestManagementMB.testFn}"/>


 <p:confirmDialog id="confirmDialog" message="# 
  {projectTestManagementMB.deleteConfirmationMsg}"  
    header="Confirming Deleting Process" severity="alert" 
   widgetVar="deleteConfirmation">  

    <p:commandButton id="confirm" value="Yes Sure" update="messages"   
     oncomplete="deleteConfirmation.hide()"    />  

      <p:commandButton id="decline" value="Not Yet" 
       onclick="deleteConfirmation.hide()" type="button" />   

     </p:confirmDialog> 

ProjectTestManagementMB 托管 Bean:

    private String deleteConfirmationMsg;//with getters and setters 
    public void testFn(){
       deleteConfirmationMsg="do you want to delete ...";
    }

问题是deleteConfirmationMsg 从不取值“你想删除......”(总是空的)

任何想法将不胜感激

4

2 回答 2

7

<p:confirmDialog>已经在返回带有表单和对话框的页面的第一个 HTTP 请求上生成了它的 HTML 表示。它只是被 CSS 隐藏,应该被 JS 显示/隐藏。当您之后在 bean 操作方法中更改确认消息时,只要您不对其进行 ajax 更新,它就不会反映在生成的 HTML 输出中。

因此,为了使更改的消息得到反映,您需要先更新<p:confirmDialog>客户端中的 HTML 表示,然后再将其显示在oncomplete. 为此,您可以使用update应该显示对话框的命令按钮的属性。

<p:commandButton ... update="confirmDialog testPlanetree">
于 2012-09-24T15:54:41.873 回答
1

试试这个我应该工作:

<p:commandButton value="Delete" update="testPlanetree" id="deleteBtn" actionListener="#
         {projectTestManagementMB.testFn}"
       disabled="# {projectTestManagementMB.disable}" 

       oncomplete="deleteConfirmation.show()"  />
于 2012-09-24T15:46:37.620 回答