UNPKG

angular2-data-table

Version:

angular2-data-table is a Angular2 component for presenting large and complex data.

102 lines (87 loc) 2.44 kB
import { Component } from '@angular/core'; @Component({ selector: 'chkbox-selection-demo', template: ` <div> <h3> Checkbox Selection <small> <a href="#" (click)="add()">Add</a> | <a href="#" (click)="update()">Update</a> | <a href="#" (click)="remove()">Remove</a> </small> </h3> <div style='float:left;width:75%'> <swui-datatable style="width: 90%" class="material" [rows]="rows" [columnMode]="'force'" [headerHeight]="50" [footerHeight]="50" [rowHeight]="'auto'" [limit]="5" [selected]="selected" [selectionType]="'checkbox'" (activate)="onActivate($event)" (select)='onSelect($event)'> <swui-datatable-column [width]="30" [sortable]="false" [canAutoResize]="false" [draggable]="false" [resizeable]="false" [headerCheckboxable]="true" [checkboxable]="true"> </swui-datatable-column> <swui-datatable-column name="Name"></swui-datatable-column> <swui-datatable-column name="Gender"></swui-datatable-column> <swui-datatable-column name="Company"></swui-datatable-column> </swui-datatable> </div> <div class='selected-column'> <h4>Selections <small>({{selected?.length}})</small></h4> <ul> <li *ngFor='let sel of selected'> {{sel.name}} </li> <li *ngIf="!selected?.length">No Selections</li> </ul> </div> </div> ` }) export class CheckboxSelectionComponent { rows = []; selected = []; constructor() { this.fetch((data) => { this.rows = data; }); } fetch(cb) { const req = new XMLHttpRequest(); req.open('GET', `assets/data/company.json`); req.onload = () => { cb(JSON.parse(req.response)); }; req.send(); } onSelect({ selected }) { console.log('Select Event', selected, this.selected); this.selected.splice(0, this.selected.length); this.selected.push(...selected); } onActivate(event) { console.log('Activate Event', event); } add() { this.selected.push(this.rows[1], this.rows[3]); } update() { this.selected = [ this.rows[1], this.rows[3] ]; } remove() { this.selected = []; } }