Шаблон столбца фильтрации в сетке пользовательского интерфейса Kendo

В этой панели у меня есть интерфейс 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;

}

person ps0604    schedule 04.03.2019    source источник


Ответы (1)


Сетка не знает, как / что фильтровать, потому что вам не хватает атрибута field в вашем первом столбце.

Как только этот атрибут становится доступным, в столбце отображается входной фильтр.

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

Обновленный Plunker

person Philipp    schedule 05.03.2019