2016-03-17 5 views
0

У меня есть сетка кендо с несколькими столбцами, одна из которых основана на свойстве int, а другая - на свойства строки.Как добавить различные фильтры в разные столбцы в Kendo Grid?

Я пытаюсь фильтровать столбцы с разными операторами и добавил следующий код:

.Filterable(ftb => ftb.Extra(false) 
.Operators(op => op 
    .ForNumber(num => num 
      .Clear() 
      .IsGreaterThanOrEqualTo(">=")) 
    .ForString(str => 
     str.Clear() 
      .Contains("Contains")))) 

Однако, по какой-то причине выше не работает. Каков наилучший способ иметь разные операторы в разных столбцах? Можно ли указать оператор фильтра для определенных столбцов?

Есть ли способ указать, например, 3 оператора на всех, кроме одного столбца, и использовать ли этот специальный столбец другой оператор?

ответ

1

Можно определить параметры фильтра для сетки, а затем для каждого столбца отдельно, что, как представляется, переопределяет параметры сетки.

@(Html.Kendo().Grid<SomeType>() 
    .Columns(columns => 
    { 
     columns.Bound(c => c.StringProperty1) 
       .Filterable(f => f.Operators(op => op.ForString(str => 
         str.Clear().Contains("Contains1234")) 
       )); 
     columns.Bound(c => c.StringProperty2); 
     columns.Bound(c => c.IntProperty); 
    }) 
    .Filterable(f => f.Operators(op => op 

      .ForNumber(num => 
       num.Clear() 
       .IsGreaterThanOrEqualTo(">=")) 
      .ForString(str => 
       str.Clear() 
       .Contains("Contains5678")) 
    )) 
    .Name("Grid") 
) 

В приведенном выше примере, StringProperty1 получит Contains1234 фильтр и StringProperty2 бы получить Contains5678 фильтр.