0

最初にユーザーがファイルをアップロードした後、ファイル情報を含むdataTableを持っています。その後、ファイルがデータベースに追加され、ファイル情報がdataTableに表示されます。ここに私のコードがあります:

    <p:fileUpload fileUploadListener="#{projectTestManagementMB.handleFileUpload}"  

      oncomplete="projectTestManagementMB.loadFamilyAttachemtsList()"    
       update="familyAttachmentDt" />  

       <p:dataTable id="familyAttachmentDt" var="familyAttachment" value="#
           {projectTestManagementMB.familyAttachmentsList}">  
                                      <p:column headerText="Name">  
                                        <h:outputText value="#{familyAttachment.name}" 
                          />  
                                      </p:column>  

                                        <p:column headerText="Size">  
                                          <h:outputText value="#
                                      {familyAttachment.size}" />  
                                        </p:column>  

                                        <p:column headerText="Creation Date">  
                                          <h:outputText value="#
                                   {familyAttachment.date}" />  
                                       </p:column>  

                                       <p:column headerText="Options">  

                                      </p:column>  
                                  </p:dataTable> 

データテーブルを更新したいので、dataTable を指す update 属性と oncomplete 属性を使用して loadFamilyAttachemtsList() メソッドを呼び出しました。

  public void loadFamilyAttachemtsList(){
   System.out.println("loadFamilyAttachemtsList");
   Family family= (Family) selectedNode.getData();
   DataModel.setCurrentFamily(family);
   familyAttachmentList=DataModel.initSelectedFamilyAttachements(family);


     }

しかし、このメソッドは決して呼び出されません

任意のidaをいただければ幸いです

4

1 に答える 1

1

oncomplete 属性は、サーバー側のメソッドではなく、クライアント側の JavaScript 関数を呼び出すために使用されます。

したがって、最後に handleFileUpload メソッドで loadFamilyAttachemtsList メソッドを呼び出すだけで機能します。

于 2012-09-29T15:11:15.437 に答える