我有一个带有excel,PDF内置工具栏模板的KendoUi Grid,我用每个页面请求的ajax请求填充kendoGrid我正在对服务器执行ajax调用并将数据绑定到grid.y因为我的网格有100,000条记录(为了提高性能。所以当我使用所有页面都属于真实属性时,它不会导出所有记录。
var grid = $('#NewLeadsGrid').data("kendoGrid")
var newdataSource = new kendo.data.DataSource({
transport: {
read: function (options) {
$.ajax({
url: '/Reports/NewLeadsList',
contentType: "application/json; charset=utf-8",
dataType : "json",
data: JSON.stringify({
LifecycleStage: selfNewLeads.LifecycleStage(),
ShowTop: $('#NewLeadsGrid').data("kendoGrid").dataSource.pageSize(),
Filters: selfNewLeads.Filters(),
CustomStartDate: selfNewLeads.CustomStartDate(),
CustomEndDate: selfNewLeads.CustomEndDate(),
PageNumber: $('#NewLeadsGrid').data("kendoGrid").dataSource.page(),
CustomPredicateScript: selfNewLeads.CustomPredicateScript()
}),
type: 'post',
success: function (result) {
options.success(result);
}
});
},
},
schema: {
data: "Data",
total: "Total"
},
serverPaging: true,
pageSize: 10
});
grid.setDataSource(newdataSource);
grid.dataSource.fetch();
答案 0 :(得分:2)
如果我理解正确,您希望导出包括分页数据在内的所有数据。这可以使用excel声明中的allPages配置来实现。单击“导出到Excel”按钮时,将从后端读取所有数据。大数据集可能会对页面性能产生重大影响。
<div id="grid"></div>
<script>
$("#grid").kendoGrid({
toolbar: ["excel"],
excel: {
allPages: true
},
dataSource: {
transport: {
read: {
url: "http://demos.telerik.com/kendo-ui/service/products",
dataType: "jsonp"
}
},
pageSize: 10
},
pageable: true
});
</script>