jqwidgets-framework
Version:
jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.
83 lines (70 loc) • 2.98 kB
text/typescript
import { Component, ViewChild, ElementRef } from '@angular/core';
import { jqxGridComponent } from 'jqwidgets-ng/jqxgrid'
({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
('myGrid', { static: false }) myGrid: jqxGridComponent;
('myTable', { static: false }) myTable: ElementRef;
generateData(): any[] {
let table = this.myTable.nativeElement;
let columns = table.children[0].getElementsByTagName('th');
let rows = table.children[1].getElementsByTagName('tr');
let data = [];
for (let i = 0; i < rows.length; i++) {
let row = rows[i];
let datarow = {};
for (let j = 0; j < columns.length; j++) {
// Get column's title.
let columnName = columns[j].innerHTML;
// Get cell.
let cell = rows[i].children[j].innerHTML;
datarow[columnName] = cell;
}
data[data.length] = datarow;
}
return data;
}
getWidth() : any {
if (document.body.offsetWidth < 850) {
return '90%';
}
return 850;
}
loadBtn(): void {
let source =
{
localdata: this.generateData(),
datatype: 'array',
datafields:
[
{ name: 'First Name', type: 'string' },
{ name: 'Last Name', type: 'string' },
{ name: 'Product', type: 'string' },
{ name: 'Available', type: 'string' },
{ name: 'Ship Date', type: 'date', format: 'MM/dd/yyyy' },
{ name: 'Quantity', type: 'number' },
{ name: 'Price', type: 'number' }
]
};
let dataAdapter = new jqx.dataAdapter(source);
let settings = {
width: 850,
source: dataAdapter,
columnsresize: true,
autoheight: true,
sortable: true,
columns: [
{ text: 'First Name', dataField: 'First Name', align: 'center', width: 130 },
{ text: 'Last Name', dataField: 'Last Name', align: 'center', width: 130 },
{ text: 'Product', dataField: 'Product', align: 'center', width: 170 },
{ text: 'Available', dataField: 'Available', columntype: 'checkbox', align: 'center', width: 90 },
{ text: 'Ship Date', dataField: 'Ship Date', align: 'center', cellsformat: 'd', width: 100 },
{ text: 'Quantity', dataField: 'Quantity', align: 'center', cellsalign: 'right', width: 100 },
{ text: 'Price', dataField: 'Price', align: 'right', cellsalign: 'right', cellsformat: "c2" }
]
}
this.myGrid.createComponent(settings);
}
}