|
<ejs-querybuilder
#querybuilder
class="row"
[dataSource]="dataSource"
width="100%"
[rule]="importRules"
(ruleChange)="updateRule($event)"
>
<e-columns>
<e-column field="TaskID" label="Task ID" type="number"></e-column>
<e-column field="Name" label="Name" type="string"></e-column>
<e-column field="Category" label="Category" type="string"></e-column>
<e-column field="SerialNo" label="Serial No" type="string"></e-column>
<e-column field="InvoiceNo" label="Invoice No" type="string"></e-column>
<e-column field="Status" label="Status" type="string"></e-column>
</e-columns>
</ejs-querybuilder>
</div>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<ejs-grid
id="Grid"
#grid
[dataSource]="gridDataSource"
[allowSelection]="true"
[allowPaging]="true"
[pageSettings]="pageSettings"
[filterSettings]="filterSettings"
width="100%"
(created)="onGridCreated()"
>
<e-columns>
<e-column
field="TaskID"
headerText="Task ID"
width="120"
textAlign="Right"
></e-column>
<e-column field="Name" headerText="Name" width="140"></e-column>
<e-column
field="Category"
headerText="Category"
width="140"
textAlign="Right"
></e-column>
<e-column
field="InvoiceNo"
headerText="Invoice No"
width="130"
></e-column>
<e-column field="Status" headerText="Status" width="120"></e-column>
<e-column
field="SerialNo"
headerText="Serial No"
width="130"
></e-column>
</e-columns>
</ejs-grid>
|
|
dataSource = hardwareData;
gridDataSource = hardwareData;
pageSettings = { pageSize: 8, pageCount: 5 };
importRules: RuleModel = {
condition: 'or',
rules: [
{
label: 'Category',
field: 'Category',
type: 'string',
operator: 'endswith',
value: 'Laptop'
}
]
};
updateRule(args: RuleChangeEventArgs): void {
const predicate: Predicate = this.qryBldrObj.getPredicate(args.rule);
const fltrDataSource: Object[] = [];
let dataManagerQuery: Query;
if (isNullOrUndefined(predicate)) {
dataManagerQuery = new Query().select([
'TaskID',
'Name',
'Category',
'SerialNo',
'InvoiceNo',
'Status'
]);
} else {
predicate.ignoreAccent = true;
dataManagerQuery = new Query()
.select([
'TaskID',
'Name',
'Category',
'SerialNo',
'InvoiceNo',
'Status'
])
.where(predicate);
}
new DataManager(hardwareData)
.executeQuery(dataManagerQuery)
.then((e: ReturnOption) => {
(<Object[]>e.result).forEach((data: Object) => {
fltrDataSource.push(data);
});
});
this.gridDataSource = fltrDataSource;
this.grid.refresh();
}
onGridCreated(): void {
this.updateRule({
rule: this.qryBldrObj.getValidRules(this.qryBldrObj.rule)
});
}
|