首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除kendo角度网格过滤器菜单模板上的按钮触发器事件处理程序

清除kendo角度网格过滤器菜单模板上的按钮触发器事件处理程序
EN

Stack Overflow用户
提问于 2019-02-04 13:08:54
回答 2查看 1.8K关注 0票数 0

我已经在Kendo Angular Grid上实现了kendoGridFilterMenuTemplate

代码语言:javascript
复制
<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>

我需要做一些操作,点击清除按钮在我的过滤器。请看下图。

EN

回答 2

Stack Overflow用户

发布于 2019-02-05 02:24:26

根据this清除按钮触发valueChange事件,因此您应该能够在multiSelectChange上验证value是否为null并运行您的代码

更新

检查此stackblitz

代码语言:javascript
复制
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 = []
    }
}

我添加了逻辑来检查先前选择的值是否存在,以及当所有过滤器被删除时,您可以运行您的逻辑

票数 0
EN

Stack Overflow用户

发布于 2021-02-10 18:14:08

这里有一个针对jquery kendo网格的解决方案。要在网格过滤器的清除按钮上捕获任何内容,可以在剑道网格中使用filterMenuInit函数。

代码语言:javascript
复制
filterable: true,
filterMenuInit: function (e) {
    e.container.on("click", "[type='reset']", 
            function () {
             console.log("Clear button clicked");
           });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54510421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档