我有一個網格控件,我希望導出的內容。初始化後,pageSize
屬性設置爲10項,但是我想在exportToPDF
期間增加每頁項目的數量。導出爲PDF增加每頁的項目數
我試圖在執行導出之前修改dataSource
的pageSize
,但這似乎對最終產品沒有影響。
var grid = $("#grid").data("kendoGrid");
var filter = grid.dataSource.filter;
grid.dataSource.query({
filter: filter,
pageSize: 20, // has no effect on the exported PDF
page: 1,
group: [{
field: "groupField1",
dir: "asc"
}, {
field: "groupField2",
dir: "asc"
}, {
field: "groupField3",
dir: "asc"
}]
});
var progress = $.Deferred();
grid._drawPDF(progress)
.then(function (root) {
return kendo.drawing.exportPDF(root, { forcePageBreak: ".page-break", multiPage: true });
})
.done(function (dataURI) {
// ... do some manual manipulation of dataURI
kendo.saveAs({
dataURI: manipualtedDataURI
});
progress.resolve();
有什麼我很想念,所以我可以在PDF導出的每個頁面上顯示更多的項目?
編輯
包括由下面的答案建議pdfExport
功能(永遠也不會被所謂的)我的網格定義:
var grid = $("#reportGrid").kendoGrid({
pdf: {
allPages: true,
avoidLinks: true,
repeatHeaders: true,
template: kendo.template($("#page-template").html()),
scale: 0.7,
margin: { top: "2.5cm", right: "1cm", bottom: "1.5cm", left: "1cm" },
paperSize: "A4",
landscape: true
},
// *this function is not getting called*
pdfExport: function(e) {
e.sender.dataSource.pageSize(10);
e.promise.done(function() {
e.sender.dataSource.pageSize(20);
});
},
toolbar: kendo.template($("#template").html()),
...
});
注意:模板用於包括頁眉/頁腳在PDF導出的每個頁面上。
另注:「dataURI的手動操作」包括外出服務器執行與其他PDF文件合併,所以無法通過電網:(
編輯使用默認的出口2
我已經從@ RKSaini的回答擴展了Dojo的例子,使用我需要生成PDF導出的方法(根據原始文章) 代碼片段記錄了正在導出的網格的URI以及pdfExport
函數是什麼時候如您所見,使用內置網格「導出到PDF」按鈕時,將顯示pdfExport
功能被觸發,但當使用網格下方的附加按鈕時,它不是。
你的榜樣檢查更新道場的作品,但在我的代碼(這觸發使用手動'exportPDF'出口到PDF)相結合時,'pdfExport'功能不會被調用。 – Sandman
不要在網格上調用saveAsPDF()函數嗎?它將觸發pdfExport事件 請參閱文檔http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#methods-saveAsPDF –
不,根據原始問題(更新後的答案包含更多詳細信息)使用'exportPDF'的組合來獲取網格導出的URI,然後到服務器與另一個PDF進行「合併」,該PDF將返回完整的URI並最終使用'kendo.saveAs(finalURI)' – Sandman