【发布时间】:2015-01-30 22:08:33
【问题描述】:
我有一个可分页和可过滤的网格,我设置为使用新的 Kendo Grid Excel 功能导出到 excel。但是,即使我将 AllPages 设置为 true,我也只能得到前 10 个结果,无论我将 pagesize 设置为什么。删除 Pageable 属性给了我完整的结果。其他人有这个问题吗?
这是我的网格的设置。
@(Html.Kendo().Grid(Model.CloudUsage)
.Name("PCloudUsages")
.ToolBar(toolbar =>
{
toolbar.Excel().HtmlAttributes(new { @class = "toolbar-field" });
})
.Columns(columns =>
{
columns.Bound(c => c.ProjectCode).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
columns.Bound(c => c.ProjectName).Title("ProjectName").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
})
.Pageable(p => p.ButtonCount(5).PageSizes(new int[] { 10, 20, 50, 100 }))
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.Sortable()
.Excel(excel => excel.FileName("CloudUsages.xlsx").Filterable(true).ProxyURL(Url.Action("ExportExcel", "Admin")).AllPages(true))
.DataSource(source => source
.Ajax()
.Model(m => m.Id(itm => itm.ProjectName))
.Read(read => read.Action("PCloudUsages_Read", "Admin").Data("GetDates"))
.Sort(sort => sort.Add(itm => itm.ProjectName).Descending())
)
)
还有控制器方法
public ActionResult ExportExcel(string contentType, string base64, string fileName)
{
var fileContents = Convert.FromBase64String(base64);
return File(fileContents, contentType, fileName);
}
编辑:我注意到更改数据源的“pageSize”属性会更改 excel 文件中的行数。所以它似乎总是生成数据源页面大小大小的 excel 文件,无论 AllPages 是否设置为 true,或者页面大小在网格上设置为什么。
【问题讨论】:
-
不确定是否重要,但您在
.Excel()行中引用的操作与您列出的控制器方法的名称不同。 -
我也注意到了这一点。但是一旦我修好它,什么都没有改变。我还在方法中设置了一个断点,即使我更改名称后它也没有中断。
-
我还没有使用 Excel 导出。今晚我会试试看。
标签: asp.net-mvc razor kendo-ui kendo-grid kendo-asp.net-mvc