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 表現を更新する必要がありますoncompleteupdateこれには、ダイアログを表示するコマンド ボタンの属性を使用できます。

<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 に答える