0

我面临一个奇怪的情况是我有一个commandButton(我已经尝试了标准的h:commandButton和primefaces一个p:commandButton),当点击按钮时,支持bean中的一个方法被调用并返回一个Excel文件。这个命令按钮在对话框内,但我认为这不应该影响。

问题是这个按钮似乎没有生成任何请求,至少 firebug 没有显示它,但是我从服务器获取 Excel 文件,如果没有请求,这是没有意义的。

<h:commandButton id="downloadButton" value="Download" action="#{bean.downloadExcel}"/> 
<p:commandButton id="downloadButton" value="Download" action="#{bean.downloadExcel}" ajax="false" onsuccess="confirmDialogWv.close();"/> 

我不会同时使用这两个按钮,只是用它们进行了测试,结果相同。

如果“一切正常”有什么问题?如果我没有任何请求,我无法通过 onsuccess 事件关闭对话框。

以前有人遇到过这个问题吗?有什么解释吗?

在此先感谢您的帮助!

编辑:

<h:form id="contentForm" prependId="false" >
<!-- lot of code -->
<p:dialog id="confirmDialog"
              modal="true" 
              closable="false" 
              widgetVar="confirmDialogWv" 
              resizable="false"
              header="Confirm">

            <p:commandButton id="downloadButton" value="Download" action="#{bean.downloadExcel}" ajax="false" onsuccess="confirmDialogWv.close();"/> 
            <p:commandButton id="openHtmlButton" value="Open HTML" process="@form" update="@form" actionListener="#{bean.openHtml}"/>
    </p:dialog>
</h:form>

第二个按钮打开一个新窗口并正常工作。

更新:

如前所述,firebug 没有显示任何请求,但我现在一直在使用 IE 和 Chrome 进行测试。

Chrome:显示请求,但是当我在浏览器中获取 Excel 文件时,请求的状态变为“已取消”。

IE9:显示请求并返回代码 200,但未触发 onsuccess 事件

4

0 回答 0