2013-09-25 9 views
11

udało mi się zmienić domyślną kolejność filtrów dla Kendo siatki przy użyciu:Jak zmienić domyślny operator filtra w kendo ui siatki MVC

.Filterable(filterable => filterable 
         .Extra(true) 
         .Operators(ops => 
          ops.ForString(str => str.Clear() 
                .Contains("Contains") 
                .StartsWith("Starts with") 
                .EndsWith("Ends with") 
                .IsEqualTo("Is equal to")) 
         )) 

Czy jest jakiś sposób mogę zmienić operatora domyślną Or?

enter image description here

Odpowiedz

4

Można to zrobić poprzez imprezy filterMenuInit:

/* grid configuration snip */ 
.Events(e => e.FilterMenuInit("filterMenuInit")) 
/* grid configuration snip */ 

<script> 
function filterMenuInit(e) { 
     e.container 
     .find("select.k-filter-and") 
     .data("kendoDropDownList") 
     .value("or"); 
} 
</script> 

Oto live demo: http://jsbin.com/etItEpi/1/edit

+1

Niestety to rozwiązanie działa tylko częściowo i powoduje bardzo niepokojące wrażenie użytkownika: po zmianie kolejności kolumny operator resetuje się ponownie do "I". Aby odtworzyć to: 1) skonfiguruj siatkę/kolumnę w próbce do sortowania, 2) Uruchom, 3) Kliknij filtr i zauważ, że operator to "Lub". 4) Zmień kolejność kolumn, klikając jej nagłówek. 5) Kliknij filtr i zauważ, że operator jest zresetowany do wartości domyślnej: "I". –

+0

@ g.pickardou lub po prostu naciśnij przycisk Wyczyść. – Neshta

0

Można też to zrobić w jednej kolumnie oparciu o definicji siatki (MVC):

cols.Bound(m => m.xxx).Filterable(f=> f.Cell(cell => cell.Operator("or"))); 
+1

To nie działa. Brak błędu kompilacji, brak błędu środowiska wykonawczego, ale domyślna operacja I pozostaje –

+1

To jest dla trybu filtrowania 'GridFilterMode.Row' – Sergey

Powiązane problemy