国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

ExtJs Excel導出并下載IIS服務器端遇到的問題

2019-11-20 23:40:34
字體:
來源:轉載
供稿:網友
項目是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文件

clip_image002

后來找到這個工具

具體步驟很簡單:

打開工具欄上的插件

clip_image004

雖然是英文的,但是不在話下。文檔都是看的英文的。

clip_image006

clip_image008

兩張近照

這邊就可以看到post過去以后的報錯信息。

這個是無刷新post無法看到的頁面。正因為這個而糾結了好久。今天終于知道哪錯了。

把錯誤信息復制到文本生成html文件。

clip_image010

原來是.net安全機制搞的鬼。

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

<httpRuntime requestValidationMode="2.0" />

<pages validateRequest="false" />

好了 問題解決了 結博。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乡宁县| 华坪县| 通许县| 新干县| 新余市| 丰城市| 孝感市| 竹溪县| 呈贡县| 卓资县| 屏东县| 沈阳市| 台南县| 新宾| 藁城市| 西城区| 乌恰县| 岗巴县| 永福县| 英德市| 太仆寺旗| 汤原县| 萨嘎县| 韩城市| 新邵县| 台南县| 体育| 兴业县| 潞城市| 宿州市| 仪征市| 和林格尔县| 繁峙县| 慈利县| 邯郸县| 福建省| 专栏| 余干县| 台东县| 涿鹿县| 信阳市|