Grid 剑道UI网格导出到Excel/PDF不适用于IE9
Grid 剑道UI网格导出到Excel/PDF不适用于IE9,grid,internet-explorer-9,export,Grid,Internet Explorer 9,Export,我在IE9中将剑道UI网格导出到excel和pdf时遇到问题。 使用Chrome,Everythig可以正常工作,但在IE9中什么都不会发生。 这是我的表格。有什么不对劲或遗漏了吗 $("#gridDetalhes").kendoGrid({ dataSource: { data: myJsonList }, excel: { allPag
我在IE9中将剑道UI网格导出到excel和pdf时遇到问题。
使用Chrome,Everythig可以正常工作,但在IE9中什么都不会发生。
这是我的表格。有什么不对劲或遗漏了吗
$("#gridDetalhes").kendoGrid({
dataSource: {
data: myJsonList
},
excel: {
allPages: true,
fileName: "SGD_Detalhes.xlsx"
},
toolbar: ["excel", "pdf"],
columns: [
{ field: "DataInicio", width: "135px", title: "Início", type: "date", template: '#= kendo.toString(DataInicio,"dd/MM/yyyy HH:mm:ss") #' },
{ field: "DataFim", width: "135px", title: "Fim", type: "date", template: '#= kendo.toString(DataFim,"dd/MM/yyyy HH:mm:ss") #' },
{ field: "Duracao", width: "80px", title: "Duração", type: "string" },
{ field: "Gerador", width: "40px", title: "A/M", type: "string" },
{ field: "Identificador", width: "120px", title: "Identificador", type: "string" },
]
});
在标记中指定KendoUI推荐的文档类型,如XHTML 1.1、XHTML 1.0 Strict或HTML4 Strict 此外,通过元标记或HTTP头使用IE的边缘模式
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
导出功能不支持Safari、IE9及以下版本。 对于不受支持的浏览器,您需要提供
proxyUrl
来指定服务器代理URL
参见示例(对于ASP.NET WebForms/API/MVC、PHP、Java/Spring MVC)
例如,ASP.NET MVC的服务器控制器操作:
public class HomeController
{
[HttpPost]
public ActionResult KendoSave(string contentType, string base64, string fileName)
{
var fileContents = Convert.FromBase64String(base64);
return File(fileContents, contentType, fileName);
}
}
然后需要提供指向此操作的proxyUrl参数:
excel: {
allPages: true,
fileName: "SGD_Detalhes.xlsx"
proxyURL: "/Home/KendoSave",
}
希望能有所帮助。我也在为同样的问题而挣扎,并实现了服务器端,所以我最终得到了最简单的nodejs版本。代码如下:
var fs = require('fs');
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.post('/save', function(req,res){
var fContents = req.body.base64;
var fName = req.body.fileName;
var buffer = new Buffer(fContents, 'base64');
res.setHeader('Content-disposition', 'attachment; filename=' + fName);
res.send(buffer);
})
app.listen(80);
我试过了,但什么也没发生。也许我的IE必须被配置或其他东西