Почему этот начальный сеточный фильтр Kendo не работает?

#asp.net-mvc #filter #kendo-ui #telerik #kendo-grid

#asp.net-mvc #Фильтр #кендо-пользовательский интерфейс #телерик #kendo-grid

Вопрос:

У меня есть такая модель:

 Id    Type
-------------
1     Vehicle
2     Trailer
3     Vehicle
 

Я надеюсь в конечном итоге использовать переключатель, чтобы управлять тем, как эти данные фильтруются в сетке кендо, выбирая фильтрацию по Type Vehicle принципу равно или Trailer . Я не знаю, как это сделать, но на данный момент я не могу заставить работать даже начальный фильтр. Моя сетка выглядит следующим образом:

 @(Html.Kendo().Grid<PcKendoUi.Models.CompanyDueDatesIndexVM>()
    .Name("DueDates")
    .Columns(columns =>
    {
        columns.Bound(c => c.Id);
        columns.Bound(c => c.Type);
    })
    .Filterable()
    .DataSource(ds => ds
        .Ajax()
        .Model(m => m.Id(x => x.Id))
        .Read(s => s.Action("Test", "CompanyDueDates"))
        .Filter(filter =>
        {
            filter.Add(f => f.Type == "Vehicle");
        })
     )
)
 

Мой код основан на примере фильтра из документации.

При этом по-прежнему отображаются все 3 записи в модели, а не только строки 1 и 3 . Что также интересно, так это то, что после указания этого начального фильтра элементы управления фильтрами также не допускают никаких фильтров. То есть они видны, я могу ввести данные и щелкнуть Filter , но это не будет фильтровать сетку.

У кого-нибудь есть идеи, в чем может заключаться проблема?

Ответ №1:

Согласно документации, ваш синтаксис неверен, вы написали:

 filter.Add(f => f.Type == "Vehicle");
 

Когда это должно быть:

 filter.Add(f => f.Type).IsEqualTo("Vehicle");
 

Комментарии:

1. Невероятно. Мой мозг обработал это как прямой LINQ. Большое спасибо.