|
App.Component.hmtl
<ejs-treegrid #treegrid [dataSource] = 'data | async'[treeColumnIndex] = '1' parentIdMapping = 'ParentId' idMapping = 'TaskId' hasChildMapping = 'isParent'(dataStateChange) = 'dataStateChange($event)'[allowPaging] = "true"[allowSorting] = "true"[pageSettings] = "pageSettings" >
<e-columns>
<e-column field='TaskId' headerText='Task ID' width='90' textAlign='Right'></e-column>
. . .
</e-columns>
</ejs-treegrid>`
App.Component.ts
protected getData(state: DataStateChangeEventArgs): Observable<DataStateChangeEventArgs> {
const pageQuery = `$skip=${state.skip}&$top=${state.take}`;
let sortQuery: string = '';
if ((state.sorted || []).length) {
sortQuery = `&$orderby=` + state.sorted.map((obj: Sorts) => {
return obj.direction === 'descending' ? `${obj.name} desc` : obj.name;
}).reverse().join(',');
}
return this.http
.get(`${this.BASE_URL}?${pageQuery}${sortQuery}&$inlinecount=allpages&$format=json`)
.pipe(map((response: any) => response.json()))
.pipe(map((response: any) => (<DataResult>{
result: response['d']['results'],
count: parseInt(response['d']['__count'], 10)
})))
.pipe((data: any) => data);
} |