angular2-data-table
Version:
angular2-data-table is a Angular2 component for presenting large and complex data.
70 lines (57 loc) • 1.42 kB
text/typescript
import { Component } from '@angular/core';
@Component({
selector: 'server-paging-demo',
template: `
<div>
<h3>Server-side Paging</h3>
<swui-datatable
class="material"
[]="rows"
[]="[{name:'Name'},{name:'Gender'},{name:'Company'}]"
[]="'force'"
[]="50"
[]="50"
[]="'auto'"
[]="true"
[]="count"
[]="offset"
[]="limit"
(page)='onPage($event)'>
</swui-datatable>
</div>
`
})
export class ServerPagingComponent {
rows = [];
count: number = 0;
offset: number = 0;
limit: number = 10;
ngOnInit() {
this.page(this.offset, this.limit);
}
page(offset, limit) {
this.fetch((results) => {
this.count = results.length;
const start = offset * limit;
const end = start + limit;
let rows = [...this.rows];
for (let i = start; i < end; i++) {
rows[i] = results[i];
}
this.rows = rows;
console.log('Page Results', start, end, rows);
});
}
fetch(cb) {
const req = new XMLHttpRequest();
req.open('GET', `assets/data/company.json`);
req.onload = () => {
cb(JSON.parse(req.response));
};
req.send();
}
onPage(event) {
console.log('Page Event', event);
this.page(event.offset, event.limit);
}
}