使用方法<a4j:ajax>在<h:commandlink> </h:commandlink> </a4j:ajax>

时间:2014-08-14 08:55:36

标签: jsf richfaces

第一种方式:

<h:commandLink id="printSelectedReportsLink" value="${msg['page.dfeOper016form.button.printAll']}" target="_blank"  
             action="#{PDFReportsMBean.printSelectedScannedDoc}" 
             onclick="uncheckScannedDocsCheckboxes(); 
             {#{rich:element('printSelectedReportsLink')}.style.display='none';
             #{rich:element('printSelectedReportsText')}.style.display='inline';};" 
             style="#{PDFReportsMBean.selectedAnyDocs ? 'display: inline' : 'display: none'}">  

第二种方式:

<h:commandLink id="printSelectedReportsLink" value="${msg['page.dfeOper016form.button.printAll']}" target="_blank"  
            action="#{PDFReportsMBean.printSelectedScannedDoc}" onclick="uncheckScannedDocsCheckboxes();" 
            style="#{PDFReportsMBean.selectedAnyDocs ? 'display: inline' : 'display: none'}">
        <a4j:ajax event="click" 
            oncomplete="{#{rich:element('printSelectedReportsLink')}.style.display='none';
            #{rich:element('printSelectedReportsText')}.style.display='inline';}" />    

第一种方式有效,onclick操作也运行action方法。 第二种方法不能正常工作,onclick操作运行但方法不运行,我在调试器中检查了这个... 有什么问题?

1 个答案:

答案 0 :(得分:0)

操作组件的默认ajax事件是event =“action”您的操作方法未被调用bcos操作事件未排队,因为您已将事件视为单击

解决方案:使用event =“action”或删除它(它会正常工作)