使用cfcontent标记将cfunction输出导出到excel后无法重定向到调用页面

时间:2014-06-04 16:59:21

标签: coldfusion coldfusion-9

我正在尝试使用单击按钮将功能输出的内容导出到Excel。我已经为按钮创建了一个操作页面,该页面使用cfheader和cfcontent标签调用导出到excel页面。使用这些标签导出excel工作正常但在cfcontent标签之后我创建了一个表单并将其重定向回调用页面。 cfcontent标记之后的代码未执行且页面未重定向。我应该如何在cfcontent标签后重定向?请帮我解决这个问题。

这是我用于导出到excel的代码。

<cfsavecontent variable="strExcelData">
    <cfoutput>#fn_retrieveData()#</cfoutput>
</cfsavecontent>

<cfheader name="Content-Disposition" value="attachment; filename=Audit_#DateFormat(Now(),'ddmmyyyy')#.xls"/>
<cfcontent type="application/vnd.msexcel" variable="#ToBinary( ToBase64( strExcelData.Trim() ) )#"/>

<form name=frm_AuditTrail method=POST action=tchk_AuditTrailSearch.cfm>
<cfoutput>
    <input type='hidden' name='txt_searchstr1' id='txt_searchstr1' value='#FORM.txt_searchstr1#' />
    <input type='hidden' name='txt_searchstr2' id='txt_searchstr2' value='#FORM.txt_searchstr2#' />
</cfoutput>
</form>

<script type="text/javascript">
    window.onload = function()
    {
        alert("windows.onload is redirecting to review data page NOW");
        document.frm_AuditTrail.submit();
        return;
    }
</script>

1 个答案:

答案 0 :(得分:3)

<cfcontent>标记后无法输出任何内容;它被忽略了。只有<cfcontent>标记的内容会被发送回浏览器。

From the docs for cfcontent

variable  Optional  Name of a ColdFusion binary variable whose contents can be 
                    displayed by the browser, such as the contents of a chart 
                    generated by the cfchart tag or a PDF or Excel file retrieved 
                    by a cffile action="readBinary" tag. When you use this 
                    attribute, any other output on the current CFML page is 
                    ignored; only the contents of the file are sent to the client.