我正在使用带有Angular 2的Kendo Grid使用这个http://www.telerik.com/kendo-angular-ui/components/grid/data-binding/教程,但我没有在网格中找到过滤。如何使用Angular 2过滤我的Kendo Grid?
答案 0 :(得分:5)
过滤器在当前的Beta.0版本的kendo-angular2-grid中不可用。
目前,您可以使用列出here
的有限API已经在telerik的kendo-angular2上报告了问题。 Refer this
Telerik成员对此过滤器问题的评论 -
我们没有网格过滤功能的具体时间表。 此功能有许多先决条件,最多 重要的是日期选择器。您可以查看我们的路线图 更多详情 - http://www.telerik.com/kendo-angular-ui/roadmap/
此想法已发布在新开设的反馈门户网站Refer this
上答案 1 :(得分:5)
我刚刚检查了在Kendo Angular 2 Grid中启用过滤器的可能方法,发现Telerik启用了它。请检查以下链接。
http://www.telerik.com/kendo-angular-ui/components/grid/filtering/
答案 2 :(得分:4)
我创建了此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));
}
}
答案 3 :(得分:0)
我加入了Fabio Antunes解决方案 从&#39; @ progress / kendo-data-query&#39;;
导入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
};
答案 4 :(得分:0)
Kendo过滤器更新 - 非常类似于Nonik的解决方案。
将“compileFilter”替换为“filterBy”。这是辅助函数的dataquery集的一部分。
import { filterBy } from '@progress/kendo-data-query'
答案 5 :(得分:0)
为了您的信息,Kendo Grid在最新版本中添加了过滤功能。请看他们的网站。
如果你需要在角度2中使用kendo网格的某些客户过滤器,那么请查看此处或在Google中搜索:Angular-2 + Kendo Grid自定义过滤器