2015-01-21 51 views

回答

3

你有兩個選擇:

  1. 定義與要導出爲PDF當問及出口實際上出口的第二列第二格。兩個網格應共享數據源,以便過濾,將會共享訂單...。
  2. 攔截pdfExport在生成PDF之前觸發的事件,並使用showColumnhideColumn方法隱藏/顯示列。

以下代碼顯示了第二種方法(儘管我個人喜歡首先)。在點擊導出按鈕之前,您會看到EmployeeID,但PDF不包含此列,但包含Country

$(document).ready(function() { 
 
    kendo.pdf.defineFont({ 
 
    "DejaVu Sans"    : "http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans.ttf", 
 
    "DejaVu Sans|Bold"  : "http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans-Bold.ttf", 
 
    "DejaVu Sans|Bold|Italic" : "http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans-Oblique.ttf", 
 
    "DejaVu Sans|Italic"  : "http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans-Oblique.ttf" 
 
    }); 
 
    
 
    var grid = $("#grid").kendoGrid({ 
 
    toolbar: ["pdf"], 
 
    pdf: { 
 
     fileName: "Kendo UI Grid Export.pdf", 
 
     proxyURL: "http://demos.telerik.com/kendo-ui/service/export" 
 
    }, 
 
    dataSource: { 
 
     type: "odata", 
 
     transport: { 
 
     read: { 
 
      url: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Employees", 
 
     } 
 
     } 
 
    }, 
 
    columns: [ 
 
     { 
 
     title: "Photo", 
 
     width: 140, 
 
     template :'<img src="http://demos.telerik.com/kendo-ui/content/web/Employees/#: data.EmployeeID #.jpg" alt="#: EmployeeID #" />' 
 
     }, 
 
     { field: "FirstName" }, 
 
     { field: "LastName" }, 
 
     { field: "Country", hidden: true }, 
 
     { field: "EmployeeID" } 
 
    ], 
 
    scrollable: false, 
 
    pdfExport: function(e) { 
 
     grid.showColumn(3);    
 
     grid.hideColumn(4);    
 
    } 
 
    }).data("kendoGrid"); 
 
});
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.common.min.css" /> 
 
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.default.min.css" /> 
 
<script src="http://cdn.kendostatic.com/2014.3.1316/js/jquery.min.js"></script> 
 
<script src="http://cdn.kendostatic.com/2014.3.1316/js/jszip.min.js"></script> 
 
<script src="http://cdn.kendostatic.com/2014.3.1316/js/kendo.all.min.js"></script> 
 
<script src="http://cdn.kendostatic.com/2014.3.1316/js/pako_deflate.min.js"></script> 
 

 
<div id="grid"></div>

+0

Thanks.In第二個選項,單擊導出按鈕網格change.I不想知道列太happen.For隱藏/顯示我使用ColumnMenu列出的列後,這個工具完全沒問題。你可以分享你給出的第一個選項的代碼片段,我無法跟隨。 – pogo22 2015-01-22 06:12:50

+0

我的意圖是從網格獲取導出數據,其他一些數據源可能是相同的json文件,它是網格源或與網格數據有一些關係的其他json文件。 – pogo22 2015-01-22 06:16:36

+0

你可以發佈你的第一個建議的代碼示例嗎?我更喜歡這一點,因爲它不會改變頁面上的網格外觀。但我使用MVC擴展,所以不太熟悉使用JS網格選項。我想我會想在JS中完全創建一個新的網格(我可以做,不提供jquery選擇器嗎?),將數據源複製到新的網格,然後調用新網格的saveAsExcel()方法? – SventoryMang 2016-11-04 18:22:39