将所有数据从Kendo UI Grid Export复制到Excel

时间:2014-11-29 07:42:07

标签: kendo-ui

我有一个带有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();

1 个答案:

答案 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>