2015-01-05 116 views
4


我有問題將Kendo UI Grid導出爲Excel和Excel中的PDF。
Everythig使用Chrome可以正常工作,但在IE9中沒有任何反應。
這是我的網格。有什麼不對或缺失?
Kendo UI Grid導出爲Excel/PDF無法在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" }, 

      ] 


     }); 

回答

0

指定劍道UI嚴格或HTML4嚴格在您的標記建議DOCTYPES像XHTML 1.1,XHTML 1.0

此外,經由META標籤或HTTP標頭

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
+0

我試過這個,但沒有任何反應。 也許我的IE必須配置或別的 – Goldar

7

使用IE的邊緣模式導出功能不支持Safari,IE9及以下版本。 對於不受支持的瀏覽器,您需要提供proxyUrl來指定服務器代理URL。

Server Proxy Implementations例子(用於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", 
     } 

希望它有幫助。

+0

好的。有效。 謝謝Terri。 – Goldar

0

我一直在努力解決同樣的問題並實現服務器端,所以我最終選擇了最簡單的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);