Datatable for Angular
npm install angular-open-datagrid --save
import {AngularOpenDatagridModule} from 'angular-open-datagrid';
imports: [
BrowserModule,
AppRoutingModule,
AngularOpenDatagridModule
]
<data-grid [pagination]="pagination" [theme]="theme"
[columnDefs]="columnDefs" [rowData]="rowData"></data-grid>
For icons install font-awesome
npm install font-awesome --save
and include css in src/styles.scss
@import "../node_modules/font-awesome/css/font-awesome.css";
HTML
<data-grid [pagination]="pagination" [theme]="theme"
[columnDefs]="columnDefs" [rowData]="rowData" (dataChanged)="valueChanged($event)" ></data-grid>
JavaScript
valueChanged (valueChanged){
console.log("Row: ",valueChanged.row,"Column: ",valueChanged.column, "Data: ",,valueChanged.data );
}
Get data change event with parameters.
HTML
<data-grid [pagination]="pagination" [theme]="theme"
[columnDefs]="columnDefs" [rowData]="rowData" (dataFiltered)="filterChanged($event)" ></data-grid>
JavaScript
filterChanged (filterChanged){
console.log("IsCommon: ",filterChanged.isCommon, "Column: ",filterChanged.column, "Data: ",filterChanged.filterOptions );
}
isCommon[boolean]: If filter triggered through common filter.
column[number]: If the filter tiggered from any particular column. This field exists if only isCommon=false.
data[Array]: Filter values.
Get column sort event with parameters.
HTML
<data-grid [pagination]="pagination" [theme]="theme"
[columnDefs]="columnDefs" [rowData]="rowData" (dataSorted)="shortChanged($event)" ></data-grid>
JavaScript
shortChanged (eventArgs){
console.log("Column: ",eventArgs.column, "Type: ",eventArgs.type );
}
column[number]: Sort tiggered column.
type[string]: Sort type ascending(ASC) or descending (DESC).
Get column re-arrange event with parameters.
HTML
<data-grid [pagination]="pagination" [theme]="theme"
[columnDefs]="columnDefs" [rowData]="rowData" (columnRearranged)="columnRearranged($event)" ></data-grid>
JavaScript
columnRearranged(eventArgs){
console.log("Change Triggered; Column:",eventArgs.column, " Moved To: ", eventArgs.movedTo);
}
column[number]: Re-arranged column number.
movedTo[number]: Final column index of the column.
colunDefs[
headerName: 'Model',
field: 'model',
width: '40px',
sort: true,
filter: true
]
Column Definition Example
columnDefs[{
headerName: 'Model',
field: 'model',
width: '40',
sort: true,
filter: true,
cellRender: (row, column, data, def) => {
return '<a href="#">' + data + '</a>';
}
},
{headerName: 'Make', isEdit: true, field: 'make', width: '40px'......}]
Simply array of data.
Example:
rowData: [
{make: 'Toyota', model: 'Celica', price: 35000, 'mileage': 30, color: 'red'},
{make: 'Ford', model: 'Mondeo', price: 32000, 'mileage': 50, color: 'green'},
.............................................................................
]
<data-grid [pagination]=true [theme]="standard-theme"
[columnDefs]="columns" [rowData]="data"></data-grid>