代码之家  ›  专栏  ›  技术社区  ›  saikiran

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

  •  0
  • saikiran  · 技术社区  · 7 年前

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   joaqcid    7 年前

    根据 this 清除按钮触发 valueChange multiSelectChange 如果值为空并运行代码

    更新

    检查这个 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 = []
        }
    }
    

    推荐文章