2013-09-21 61 views

Trả lời

4

Câu hỏi này đã được trả lời trong các diễn đàn Kendo: Kendo forum - Use dropdownlist in grid column filter

Đó là tốt để tìm kiếm luôn có trước khi các nơi khác. Về cơ bản, bạn nhận được bộ lọc tiêu đề và ẩn menu thả xuống. Tôi đã lấy sự tự do để sửa đổi fiddle trong diễn đàn vì bộ chọn jquery header find là một chút "cucoo". Và bạn có thể sử dụng cấu hình kendo thông thường thay vì tạo thủ công kết hợp

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

Điều chính là ẩn và sửa đổi trợ giúp.

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

Tìm nó ở đây: JSFiddle - Dropdown filter in kendo grid

+0

Xin chào @regisbsb. tôi đã cố gắng sử dụng giải pháp của bạn nhưng tôi có "Không thể tìm được tài sản 'tìm' của không xác định hoặc tham chiếu null" ngoại lệ. Bạn có thể giúp tôi về việc sửa lỗi ngoại lệ này không? – MustafaP

+0

Bạn có thể xây dựng? Bạn đã thấy fiddle chưa? Nó làm việc cho tôi. – regisbsb

+0

Tôi đã sửa nó. Tôi tha thứ nhưng tôi nghĩ đó là về các sự kiện. FilterMenu không được tải hoàn toàn lúc đầu. Đó là lý do tại sao tài sản 'tìm' là không xác định. Cảm ơn bạn đã trả lời @regisbsb – MustafaP

0

add sự kiện vào lưới

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

sau đó một chức năng 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

tôi đã làm tôi bằng cách tuyên bố một hàm để gọi khi xây dựng giao diện người dùng. Nó sẽ dễ dàng hơn nhiều so với săn bắn xung quanh cho các lớp học.

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

}