2013-09-21 10 views

Odpowiedz

4

Ta kwestia została już odpowiedział na forach Kendo: Kendo forum - Use dropdownlist in grid column filter

Dobrze jest tam zawsze przed szukać gdzie indziej. Zasadniczo otrzymujesz filtr nagłówka i ukrywasz listę rozwijaną. Mogłem zmodyfikować skrzypce na forum, ponieważ selektor nagłówka znajdował się nieco "kukułka". Możesz też użyć zwykłej konfiguracji kendo zamiast tworzyć ręcznie kombinację, w której musisz ręcznie ukryć i zmodyfikować pomoc.

// Find the Role filter menu. 
var filterMenu = _grid.thead.find("th[data-field='roleTitle']").data("kendoFilterMenu"); 

filterMenu.form.find("div.k-filter-help-text").text("Select an item from the list:"); 
filterMenu.form.find("span.k-dropdown:first").css("display", "none"); 

Znajdź go tutaj: JSFiddle - Dropdown filter in kendo grid

+0

Witam @regisbsb. Próbowałem użyć Twojego rozwiązania, ale biorę "Nie można uzyskać właściwości" znaleźć "undefined lub zerowy odwołanie" wyjątek. Czy możesz mi pomóc w naprawieniu tego wyjątku? – MustafaP

+0

Czy możesz rozwinąć? Widziałeś skrzypce? Mi to pasuje. – regisbsb

+0

Naprawiłem to. Zapomniałem, ale myślę, że chodziło o wydarzenia. Menu FilterMenu nie jest całkowicie załadowane na początku. Dlatego właściwość "znajdź" jest niezdefiniowana. Dzięki za odpowiedź @regisbsb – MustafaP

0

Dodaj wydarzenie do siatki

.Events(e => e.FilterMenuInit("FilterMenuFunc")) 

następnie funkcję Java Script

function FilterMenuFunc(e) { 
     var grid = $("#GridName").data("kendoGrid"); 
     var filterMenu = $(grid.thead.find("th:not(.k-hierarchy-cell,.k-group-cell)")[5]).data("kendoFilterMenu");//5 is index of column 
     try { 
      filterMenu.form.find("div.k-filter-help-text").text("Please Select A Value From List."); 
      filterMenu.form.find("span.k-dropdown:first").css("display", "none"); 
     } catch (e) {} 

    } 
1

zrobiłem kopalnię deklarując funkcję zadzwonić po budowanie interfejsu użytkownika. To powinno być znacznie łatwiejsze niż polowanie na zajęcia.

{ 
    field: "Status", 
    title: "Status", 
    filterable: { 
     extra: false, 
     ui: statusFilter 
    } 
} 


function statusFilter(element) { 

    // finds the closest form so we can start manipulating things. 
    var form = element.closest("form"); 

    // changes the help text. (you might want to localise this) 
    form.find(".k-filter-help-text:first").text("Select an item from the list:"); 

    // removes the dropdown list containing the operators (contains etc) 
    form.find("select").remove(); 

    // Adds a new dropdownlist with all the options you want to select from 
    element.kendoDropDownList({ ...... }); 

} 
Powiązane problemy