在 Kendo UI 网格中过滤列模板

Filtering column template in Kendo UI grid

In this plunk 我有一个 Kendo UI 的 Angular 网格,有两列。第一列是模板,第二列是没有模板的字符串字段。

网格是可过滤的,但只有第二列显示了进入过滤器的字段。第一列没有,因为它是一个模板,Kendo 不知道要过滤什么。

该模板实际上是一个锚点,格式为:<a (click)="...">{{dataItem.ContactName}}</a> 我需要按字段 ContactName 进行过滤。如何实现?

@Component({
    selector: 'my-app',
    template: `
      <kendo-grid #grid [kendoGridBinding]="gridData" 
            [filterable]="true" [resizable]="true">
        <kendo-grid-column title="Contact Name">
            <ng-template kendoGridCellTemplate let-dataItem>
                <a href="javascript:void(0)"
                    (click)="alert(dataItem.ContactName)">
                   {{dataItem.ContactName}}
                </a>
            </ng-template>
        </kendo-grid-column>
        <kendo-grid-column field="City" title="City"></kendo-grid-column>    
      </kendo-grid>   `
})
export class AppComponent {

    @ViewChild('grid') grid: GridBinding;

    public gridData: any[] = customers;

}

网格不知道 how/what 进行过滤,因为您缺少第一列上的 field 属性。

只要此属性可用,该列就会显示过滤器输入。

<kendo-grid-column field="ContactName" title="Contact Name">
                   ~~~~~~~~~~~~~~~~~~
    <ng-template kendoGridCellTemplate let-dataItem>
        ...
    </ng-template>
</kendo-grid-column>

Updated Plunker