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

问题描述 投票:0回答:1

我已经实现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>

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

enter image description here

angular kendo-ui kendo-grid kendo-ui-angular2
1个回答
0
投票

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 = []
    }
}

我加入的逻辑来检查是否有地方之前选择的值,并在所有过滤器被删除,你可以运行你的逻辑

© www.soinside.com 2019 - 2024. All rights reserved.