我有一個可能有很多數據的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
我不確定你在問什麼。我在上面添加了一個顯示獲取所有數據並修改它的運算器。 –