手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >ExtJs Excel导出并下载IIS服务器端遇到的问题
ExtJs Excel导出并下载IIS服务器端遇到的问题
摘要:项目是Extjs的主要针对于ExtjsGridPanel数据导出这块先做一下说明。我们可以通过Ext.getcmp()方法获取到GridPa...

项目是Extjs的主要针对于Extjs GridPanel数据导出这块先做一下说明。

我们可以通过Ext.getcmp()方法获取到GridPanel对象并通过重写的方法获取Excel字符串具体方法可以百度到。这个应该也不是什么大问题。

复制代码 代码如下:

//输出报表

function ExportReport(title) {

var vExportContent = Ext.getCmp("gridPanel").getExcelXml(null, title);

if (Ext.isIE6 || Ext.isIE7 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3 || Ext.isIE8) {

// var frm = document.createElement('form');

// frm.id = 'frmExtjs';

// frm.className = 'x-hidden';

// document.body.appendChild(frm);

var f = document.createElement("form");

f.id = "frmExtjs";

document.body.appendChild(f);

var i = document.createElement("input");

i.type = "hidden";

i.id = "exportContent";

i.name = "exportContent";

f.appendChild(i);

i.value = vExportContent;

Ext.Ajax.request({

url: 'frmExcel.aspx',

method: 'POST',

form: Ext.get('frmExtjs'),

isUpload: true,

params: { FileName: title + '.xls' }

})

} else {

document.location = 'data:application/vnd.ms-excel;base64,' + Base64.encode(vExportContent);

}

以上是表单虚拟提交的方法。但是实验了很多方法。发现数据post过去后无法生成Excel通过生成后下载方法也无法实现。(即在服务器端无法生成,但本机可以生成。)经过多次思路的转折后来想到通过数据分析来调试。看看到底数据是否post到网页

复制代码 代码如下:

string tmpFileName = "export.xls";

string tmpContent = Request["ExportContent"];

if (Request["FileName"] != "")

{

tmpFileName = Request["FileName"];//获取传递来的文件名?

tmpFileName = System.Web.HttpUtility.UrlEncode(Request.ContentEncoding.GetBytes(tmpFileName));//处理中文文件名的情况

}

Response.Clear();

Response.Buffer = true;

Response.ContentType = "application/vnd.ms-excel";

Response.AddHeader("Content-Disposition", "attachment;filename="" + tmpFileName + """);

Response.Charset = "";

System.IO.StringWriter tmpSW = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter tmpHTW = new System.Web.UI.HtmlTextWriter(tmpSW);

tmpHTW.WriteLine(tmpContent);

Response.Write(tmpSW.ToString());

Response.End();

以上是生成并下载的CS文件

ExtJs Excel导出并下载IIS服务器端遇到的问题1

后来找到这个工具

具体步骤很简单:

打开工具栏上的插件

ExtJs Excel导出并下载IIS服务器端遇到的问题2

虽然是英文的,但是不在话下。文档都是看的英文的。

ExtJs Excel导出并下载IIS服务器端遇到的问题3

ExtJs Excel导出并下载IIS服务器端遇到的问题4

两张近照

这边就可以看到post过去以后的报错信息。

这个是无刷新post无法看到的页面。正因为这个而纠结了好久。今天终于知道哪错了。

把错误信息复制到文本生成html文件。

ExtJs Excel导出并下载IIS服务器端遇到的问题5

原来是.net安全机制搞的鬼。

在web.config 的System.Web 后面加两句话就搞定了。

<httpRuntime requestValidationMode="2.0" />

<pages validateRequest="false" />

好了 问题解决了 结博。

【ExtJs Excel导出并下载IIS服务器端遇到的问题】相关文章:

JQuery中层次选择器用法实例详解

jQuery实现div随意拖动的实例代码(通用代码)

AngularJS向后端ASP.NET API控制器上传文件

jQuery计算文本框字数及限制文本框字数的方法

基于jQuery实现的无刷新表格分页实例

Nodejs中session的简单使用及通过session实现身份验证的方法

js对象和json对象互相转换的问题

Java语言概述

解决未知尺寸的图片撑破页面的问题

DIV任意拖动的问题

精品推荐
分类导航