我已经实现kendoGridFilterMenuTemplate
上剑道角度网格。
<kendo-grid-column
field="orderStage"
title="Order Stage"
width="110px">
<ng-template
kendoGridFilterMenuTemplate
let-filter="filter"
let-column="column"
let-filterService="filterService"
>
<kendo-multiselect
[data]="orderStageData"
[(ngModel)]="orderStagesSelected"
(valueChange)="multiSelectChange($event,filterService,'orderStage')"
>
</kendo-multiselect>
</ng-template>
</kendo-grid-column>
我需要做在我的过滤器对清除按钮的点击一些操作。请看看下面的图片。
据this清除按钮触发valueChange
事件,这样你就可以前人的精力能够验证上multiSelectChange
如果值为null并运行代码
UPDATE
检查这个stackblitz
private previousCategoryFilter: CompositeFilterDescriptor[] = [];
public filterChange(filter: CompositeFilterDescriptor): void {
let catFilter = filter.filters.map((f: CompositeFilterDescriptor) => {
return f.filters.find((f: FilterDescriptor) =>
f.field === 'CategoryID'
) as CompositeFilterDescriptor
})
console.log("catFilter", catFilter)
console.log("this.previousCategoryFilter", this.previousCategoryFilter)
if (this.previousCategoryFilter.length = 0 && catFilter.length > 0) {
console.log("save value")
this.previousCategoryFilter = catFilter
}
else if (this.previousCategoryFilter.length > 0 && catFilter.length === 0) {
console.log("clear")
this.previousCategoryFilter = []
}
}
我加入的逻辑来检查是否有地方之前选择的值,并在所有过滤器被删除,你可以运行你的逻辑