2017-01-11 13 views
0

javascriptを使用してボタンをクリックしようとしていますが、バッキングBeanで実行するはずのメソッドを実行します。ADF Jdeveloper - JSP上のjavascriptを使用してボタンをクリックしてください

この私のリソース

 <af:resource type="javascript"> 
      function closePopup(event) { 
       //var dialog = event.getSource(); 
       //var popup = dialog.findComponent("pt1:b17"); 
       //console.log(popup); 
       //popup.click(); 
       //$("#pt1:b17").trigger("click"); 
       //popup.hide(); 
       //event.cancel(); document.getElementById('pt1:b17') 
       console.log("trigger the event"); 

       eventFire(document.getElementById(AdfPage.PAGE.findComponentByAbsoluteId('pt1:b17').getClientId()), 'click'); 
      } 

      function eventFire(el, etype) { 

       if (el.fireEvent) { 
        console.log("true"); 
        el.fireEvent('on' + etype); 
       } 
       else { 
        console.log("false"); 
        var evObj = document.createEvent('Events'); 
        evObj.initEvent(etype, true, false); 
        el.dispatchEvent(evObj); 
       } 
      } 
     </af:resource> 

は今、これは私のJSPコードです:

                <af:group id="g4"> 
                    <af:commandButton text="Aceptar" id="b17"> 
                     <af:fileDownloadActionListener contentType="excelHTML" filename="#{viewScope.mbFiles.file_name}" method="#{viewScope.mbFiles.generateFile}"/> 
                    </af:commandButton> 
                    <af:button text="test" id="buttonTest"> 
                     <af:clientListener method="closePoPup" type="action"/> 
                    </af:button> 
                   </af:group> 

私は私のファイルをダウンロードする方法をトリガ傾けます。

ありがとうございます。

答えて

0

私は別の質問に答えを投稿:

https://stackoverflow.com/a/41708683/5120410

コードは次のようである:

Javaでメソッド:

public void prepareForDownloadAction(ActionEvent act) { 

FacesContext context = FacesContext.getCurrentInstance(); 
ExtendedRenderKitService erks = 
Service.getService(context.getRenderKit(), 
     ExtendedRenderKitService.class); 

erks.addScript(context, "customHandler();"); 
} 

今これはJavaScriptで私の方法であり、 :

<af:resource type="javascript">    

     function customHandler(evt) { 
      console.log(evt); 

      var exportCmd = AdfPage.PAGE.findComponentByAbsoluteId("pt1:b17"); 
      console.log(exportCmd); 
      var actionEvent = new AdfActionEvent(exportCmd); 
      console.log(actionEvent); 
      actionEvent.forceFullSubmit(); 
      actionEvent.noResponseExpected(); 
      actionEvent.queue(false); 

      setTimeout(function(){hidePopup();}, 1000);  


     }          

     function hidePopup() { 

      var popup = AdfPage.PAGE.findComponent("pt1:popupAceptarDescargarPlantilla::content"); 

      popup.hide(); 

     } 

    </af:resource> 

Greatings。

関連する問題