我有一个可能有很多数据的Angular 2的Kendo UI Grid。因此,我正在使用包含计数并将数据放在分页网格中的API调用。当我点击导出到Excel按钮时,它只返回显示的数据。我希望能够导出整个数据集。Telerik Kendo UI Grid自定义Excel导出
我想我如下应该是使用fetchData方法,并包括其在网格:
<kendo-grid-excel fileName="MyExport.xlsx" [fetchData]="allResults"></kendo-grid-excel>
然而,allResults方法必须返回一个ExcelExportData对象。我对API的方法调用返回一个被解析的observable。我试图在订阅事件中返回数据,但它给了我一个TypeScript错误,该方法必须返回一个值。如果我将返回类型更改为“任何”,则在获取外部应用的过滤器时,我会调用“this”时失败。
这是我目前获取方法:
allResults(): ExcelExportData {
if (!this.sort.length) {
this.sort.push({ field: undefined, dir: undefined });
}
this.myService.resultsGet(
this.filters.date,
...
undefined, // skip
undefined, // take
this.sort[0].field,
this.sort[0].dir
).subscribe(
(pagedList: any) => {
for (let item of pagedList.results) {
// manipulate a few things here
}
return { data: pagedList.results };
},
e => { console.log(`error: ${e}`); }
);
}
有什么办法来设置此作采用了棱角分明的分量滤波器,并通过订阅返回数据的外部API调用?
在此先感谢!
感谢您对这个未定义的提示!回报仍然是一个问题。我遇到的问题是网格仅包含导出中所需的数据子集。我已经有了你为我用来加载网格的方法的所有结果编写的代码(尽管我使用订阅而不是地图)。这工作正常,因为网格可以处理Observables。当我单击“导出到Excel”按钮时,我需要一组用于返回ExcelExportData类型(allResults():ExcelExportData)的myService.resultsGet方法的不同参数。将返回放在地图中返回一个void。坎登能做到这一点吗? – ChristyPiffat
我不确定你在问什么。我在上面添加了一个显示获取所有数据并修改它的运算器。 –