angular - 清除剑道角网格过滤器菜单模板上的按钮触发事件处理程序
问题描述
我已经kendoGridFilterMenuTemplate
在 Kendo Angular Grid 上实现了。
<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>
我需要在我的过滤器中单击清除按钮进行一些操作。请看下面的图片。
解决方案
根据这个清除按钮触发valueChange
事件,因此您应该能够验证multiSelectChange
值是否为空并运行您的代码
更新
检查这个堆栈闪电战
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 = []
}
}
我添加了逻辑来检查之前选择的值是否在哪里以及当所有过滤器都被删除时你可以运行你的逻辑
推荐阅读
- node.js - 在nodejs(googleapis)中获取access_token的未授权客户端错误
- sql - 从多个表中选择不同的字段
- go - 如何流式传输 PDF
- routes - 如何获取 Hanami 应用程序中使用的所有路线的列表?
- linux - 如何在由多个目录组成的多个目录/环境变量中grep?
- javascript - 如何映射枚举以选择 Storybook 中的下拉列表?
- c - 与-O3相比,gcc -Ofast的汇编代码中计算不精确的根源在哪里?
- sql - 在 SET 子句中带有子查询的 UPDATE 查询的执行顺序是什么?
- xero-api - Xero API 的身份验证
- java - 如何在命令行执行期间使依赖项 JAR 中的文件可访问?