2013-09-21 45 views

回答

4

这个问题已经回答了在剑道论坛: Kendo forum - Use dropdownlist in grid column filter

这是很好的总是前搜索其他存在。 基本上你会得到标题过滤器并隐藏下拉菜单。 我冒昧地修改论坛中的小提琴,因为查找标题jQuery选择器有点“cucoo”。您还可以使用正常的剑道配置,而不是手动创建组合

filterable: { 
    ui: function(){ ... } 
} 

最主要的是隐藏和修改的帮助。

// 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"); 

在这里找到: JSFiddle - Dropdown filter in kendo grid

+0

嗨@regisbsb。我试图用你的解决方案,但我采取“无法获得财产'发现未定义或空引用”例外。你能帮我解决这个异常吗? – MustafaP

+0

你能详细说一下吗?你看过小提琴吗?这个对我有用。 – regisbsb

+0

我修好了。我原谅了,但我认为这是关于事件。 FilterMenu首先未完全加载。这就是为什么property'find'是未定义的。感谢您的回复@regisbsb – MustafaP

0

活动添加到电网

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

那么Java脚本函数

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

我做我的声明一个函数时调用构建用户界面。它应该比狩猎课程容易得多。

{ 
    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({ ...... }); 

}