<ng-template #queryBuilderToolbarTemplate>
<button ejs-dropdownbutton target='#target' content='Pesquisar' iconCss='e-icons e-search' (beforeClose)='onClose($event)'></button>
</ng-template>
onClose($event: any) {
let parentElement = $event.event.srcElement.parentElement;
if ((parentElement.attributes['id'] != null && parentElement.attributes['id'].value.includes('querybuilder')) || (parentElement.attributes['role'] != null && parentElement.attributes['role'].value.includes('menu'))){
$event.cancel = true;
}
}
|
<div id="querybuilder">
<ejs-querybuilder #querybuilder class="row" width="70%" [dataSource]="data" [rule]="importRules" (created)="createdControl()">
<e-columns>
<e-column field="OrderID" label="Order ID" type="number"></e-column>
<e-column field="CustomerName" label="Customer Name" type="string"></e-column>
<e-column field="TitleOfCourtesy" label="Title Of Courtesy" type="boolean" [values]="values"></e-column>
<e-column field="Freight" label="Freight" type="number"></e-column>
<e-column field="OrderDate" label="Order Date" type="date" format="dd/MM/yyyy"></e-column>
<e-column field="ShipCountry" label="Ship Country" type="string"></e-column>
</e-columns>
</ejs-querybuilder>
<table class="filterquery">
<tr>
<td>
<button #toggleBtn ejs-button [isPrimary]="true" (click)="btnClick()">Close</button>
</td>
<td>
<button #okBtn ejs-button [isPrimary]="true" (click)="okbtnClick()">filter</button>
</td>
</tr>
</table>
</div>
<ng-template #template2 let-data>
<button ejs-dropdownbutton target='#querybuilder' cssClass='e-customquerybuilder' (beforeClose)='onClose($event)'>QueryBuilder</button>
</ng-template> |
|
okbtnClick() {
const predicate: Predicate = this.qryBldrObj.getPredicate(this.qryBldrObj.rule);
const fltrDataSource: Object[] = [];
let dataManagerQuery: Query;
if (isNullOrUndefined(predicate)) {
dataManagerQuery = new Query().select(['OrderID', 'CustomerName', 'Freight', 'OrderDate', 'ShipCountry']);
} else {
dataManagerQuery = new Query().select(['OrderID', 'CustomerName', 'Freight', 'OrderDate', 'ShipCountry'])
.where(predicate);
}
new DataManager(orderDetails)
.executeQuery(dataManagerQuery)
.then((e: ReturnOption) => {
(<Object[]>e.result).forEach((data: Object) => {
fltrDataSource.push(data);
});
});
this.grid.dataSource = fltrDataSource;
this.grid.refresh();
let popupElem: HTMLElement = document.getElementsByClassName("e-dropdown-popup e-customquerybuilder")[0] as HTMLElement;
let popupObj: Popup = getComponent(popupElem, 'popup') as Popup;
popupObj.hide();
} |