asp.net-mvc – Kendo Grid导出到Excel – 所有页面都不起作用

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – Kendo Grid导出到Excel – 所有页面都不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个可分页和可过滤的网格,我设置为使用新的Kendo Grid Excel功能导出到excel.但是,即使我将AllPages设置为true,我也只得到前10个结果,无论我将pagesize设置为什么.删除Pageable属性给了我完整的结果.其他人有这个问题吗?

这是我网格的设置.

  1. @(Html.Kendo().Grid(Model.CloudUsage)
  2. .Name("PCloudUsages")
  3. .ToolBar(toolbar =>
  4. {
  5. toolbar.Excel().HtmlAttributes(new { @class = "toolbar-field" });
  6. })
  7. .Columns(columns =>
  8. {
  9. columns.Bound(c => c.ProjectCode).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
  10. columns.Bound(c => c.ProjectName).Title("ProjectName").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
  11. })
  12. .Pageable(p => p.ButtonCount(5).PageSizes(new int[] { 10,20,50,100 }))
  13. .Filterable(ftb => ftb.Mode(GridFilterMode.Row))
  14. .Sortable()
  15. .Excel(excel => excel.FileName("CloudUsages.xlsx").Filterable(true).ProxyURL(Url.Action("ExportExcel","Admin")).AllPages(true))
  16. .DataSource(source => source
  17. .Ajax()
  18. .Model(m => m.Id(itm => itm.ProjectName))
  19. .Read(read => read.Action("PCloudUsages_Read","Admin").Data("GetDates"))
  20. .Sort(sort => sort.Add(itm => itm.ProjectName).Descending())
  21. )
  22. )

和控制器方法

  1. public ActionResult ExportExcel(string contentType,string base64,string fileName)
  2. {
  3. var fileContents = Convert.FromBase64String(base64);
  4.  
  5. return File(fileContents,contentType,fileName);
  6. }

编辑:我注意到更改数据源的“pageSize”属性会更改excel文件中的行数.因此,无论AllPages设置为true,还是将网页大小设置为网格,它似乎总是生成Datasource Pagesize大小的excel文件.

解决方法

弄清楚我做错了什么.问题不在于Excel问题,而是在我的网格中.我正在将网格绑定到List,这是我的viewmodel的一部分,它正在页面加载时填充.我应该将数据留空,只指定网格的类型.这样,Read Action会在网格加载时以及生成excel时获取数据.新代码应如下所示:
  1. @(Html.Kendo().Grid<CloudUsages>()
  2. .Name("PCloudUsages")
  3. .ToolBar(toolbar =>
  4. {
  5. toolbar.Excel().HtmlAttributes(new { @class = "toolbar-field" });
  6. })
  7. .Columns(columns =>
  8. {
  9. columns.Bound(c => c.ProjectCode).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
  10. columns.Bound(c => c.ProjectName).Title("ProjectName").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
  11. })
  12. .Pageable(p => p.ButtonCount(5).PageSizes(new int[] { 10,"Admin").Data("GetDates"))
  13. .Sort(sort => sort.Add(itm => itm.ProjectName).Descending())
  14. )
  15. )

猜你在找的asp.Net相关文章