首页 文章

Kendo Angular 2网格过滤器不可用

提问于
浏览
7

我正在使用带有Angular 2的Kendo Grid使用这个http://www.telerik.com/kendo-angular-ui/components/grid/data-binding/教程,但我没有在网格中找到过滤器 . 如何使用Angular 2过滤我的Kendo Grid?

6 回答

  • 4

    Filters are not available in current Beta.0 version of kendo-angular2-grid.

    目前,您可以使用列出的有限API here

    已经在telerik的kendo-angular2上报告了问题 . Refer this

    Telerik成员对此过滤器问题的评论 -

    我们没有网格过滤功能的具体时间表 . 此功能有许多先决条件,最重要的是日期选择器 . 您可以查看我们的路线图以获取更多详细信息 - http://www.telerik.com/kendo-angular-ui/roadmap/

    这个想法已经发布在新开通的反馈门户Refer this

  • 5

    我刚刚检查了在Kendo Angular 2 Grid中启用过滤器的可能方法,发现Telerik启用了它 . 请检查以下链接 .

    http://www.telerik.com/kendo-angular-ui/components/grid/filtering/

  • 5

    我创建了这个plunker,您可以按产品名称过滤网格 . 这是一个非常基本的例子:

    import { Component } from '@angular/core';
    
    import {
      GridDataResult,
      SortDescriptor,
      orderBy
    } from '@progress/kendo-angular-grid';
    
    @Component({
      selector: 'my-app',
      template: `
          <input type="text" [(ngModel)]="filter" (ngModelChange)="change()">
          <kendo-grid
              [data]="gridView"
              [sortable]="{ mode: 'multiple' }"
              [sort]="sort"
              (sortChange)="sortChange($event)"
            >
            <kendo-grid-column field="ProductID" title="Product ID" width="120">
            </kendo-grid-column>
            <kendo-grid-column field="ProductName" title="Product Name">
            </kendo-grid-column>
            <kendo-grid-column field="UnitPrice" title="Unit Price" width="230">
            </kendo-grid-column>
          </kendo-grid>
      `
    })
    export class AppComponent {
        private filter: string;
        private sort: SortDescriptor[] = [];
        private gridView: GridDataResult;
        private products: any[] = [
          {
            "ProductID": 1,
            "ProductName": "Chai",
            "UnitPrice": 18.0000,
            "Discontinued": false
        },
           {
            "ProductID": 3,
            "ProductName": "Chai",
            "UnitPrice": 122.0000,
            "Discontinued": true
        }
                                   ,{
            "ProductID": 2,
            "ProductName": "Chang",
            "UnitPrice": 19.0000,
            "Discontinued": false
        }];
    
        constructor() {
            this.loadProducts();
        }
    
        protected sortChange(sort: SortDescriptor[]): void {
            this.sort = sort;
            this.loadProducts();
        }
    
        private loadProducts(prods): void {
          const products = prods || this.products;
            this.gridView = {
                data: orderBy(products, this.sort),
                total: products.length
            };
        }
    
       private change(){
          this.loadProducts(this.products.filter(product => product.ProductName === this.filter));
       }
    
    }
    
  • 0

    我加入了Fabio Antunes解决方案
    从'@progress/kendo-data-query'导入compileFilter;

    并将change()方法更改为以下内容 . 这将允许您按多列过滤 . 再次不完全是我想要的,但现在这样做 .

    const predicate = compileFilter({
                logic: "and",
                filters: [
                    { field: "fildname1", operator: "contains", value: this.filterValue },
                    { field: "fildname2", operator: "contains", value: this.filterValue },
                    { field: "fildname3", operator: "eq", value: this.filterValue },
                    { field: "fildname4", operator: "eq", value: this.filterValue },
                ]
            });
            const result = this.data.filter(predicate);
            this.gridView = {
                data: result,
                total: result.length
            };
    
  • 0

    更新Kendo过滤器 - 非常类似于Nonik的解决方案 .

    将“compileFilter”替换为“filterBy” . 这是辅助函数的dataquery集的一部分 .

    import { filterBy } from '@progress/kendo-data-query'
    

    Kendo Data Query

  • 0

    为了您的信息,Kendo Grid在最新版本中添加了过滤功能 . 请看他们的网站 .

    如果你需要在角度2中使用kendo网格的某些客户过滤器然后在这里查看或在谷歌搜索:Angular-2 Kendo网格自定义过滤器

相关问题