gpt4 book ai didi

jquery - Kendo UI kendoTreeList ExportToExcel : "Uncaught ReferenceError: count is not defined", 与聚合列

转载 作者:行者123 更新时间:2023-12-03 22:51:26 29 4
gpt4 key购买 nike

当聚合列与 KendoTreeList 一起使用并尝试导出到 excel 时,我收到错误“未捕获的 ReferenceError:未定义计数”。
对于 sum 和 max 聚合,我得到相同的错误。

<div id="treelist"></div>

<script>
$(document).ready(function() {
var service = "//demos.telerik.com/kendo-ui/service";

$("#treelist").kendoTreeList({
toolbar: [ "excel" ],
excel: {
fileName: "Kendo UI TreeList Export.xlsx",
proxyURL: "//demos.telerik.com/kendo-ui/service/export",
filterable: true
},
dataSource: {
transport: {
read: {
url: service + "/EmployeeDirectory/All",
dataType: "jsonp"
}
},
schema: {
model: {
id: "EmployeeId",
parentId: "ReportsTo",
fields: {
ReportsTo: { nullable: true },
EmployeeId: { type: "number" },
HireDate: { field: "HireDate", type: "date" }
}
}
},
aggregate: [
{ field: "FirstName", aggregate: "count" },
{ field: "HireDate", aggregate: "max" }
]
},
height: 540,
filterable: true,
sortable: true,
columns: [
{ field: "FirstName", title: "Name",
template: "#: FirstName # #: LastName #",
footerTemplate: "#= count # employee(s)" },
{ field: "Position" },
{ field: "HireDate", title: "Hire Date", format: "{0:MMMM d, yyyy}",
footerTemplate: "Last employee hired on #= kendo.format('{0:MMMM d, yyyy}', max) #" }
]
});
});
</script>

我也尝试使用此演示代码 Kendo UI Dojo ,但没有成功。

有人有同样的问题吗?

最佳答案

您遇到的问题是由范围更改引起的。
创建网格时,#= count #真的是指#= data.FirstName.count # .现在在创建网格,data被解释为单个数据行,因此 data.Firstname.Count被定义为。但是,在 ExportToExcel data不是一行数据,它是网格中所有数据元素的数组。
所以#= data.FirstName.count #不起作用。
有两种方法可以解决这个问题。您可以做到的第一个(也是最好的方法)是重写您的模型以使用组而不是您已经实现的这种父/子关系。如果您这样做,您可以使用 #=data.aggregates.FirstName.count# 访问两个事件中的组聚合。 .
其次,您可以使用自定义聚合函数并仅在导出时使用它。就像是:

footerTemplate: (data: any) => {
var rVal = 0
if (data.count) { // If count is defined, this is just a data row so just use count.
rval = data.count;
} else { // Otherwise use the custom function.
data.forEach((item: any, index: any) => { // For each item, if it has a count, count it.
rVal = (item.FirstName) ? (rVal + item.FirstName.Count) : rVal;
});
}
return `${rVal} employee(s)`; \\ The final sum is the grand total.
}
自定义聚合在 dojo 示例中不起作用,因为 Telerik 没有正式支持它们,但我能够让它在本地工作。这可行,但我真的会推荐第一个选项。
请注意,如果您忘记了 data指你可以使用 #=console.log(data)#看看它在每个上下文/事件中的样子。

关于jquery - Kendo UI kendoTreeList ExportToExcel : "Uncaught ReferenceError: count is not defined", 与聚合列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565042/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com