Kendo makes this thing very easy for you, you need to create a filter and pass it to a DataSource.
http://docs.telerik.com/kendo-ui/api/framework/datasource#methods-filter
However, this problem needs to be divided into two different tasks:
a) Grab key events in the search box, Throttle and start the search operation.
b) Create a filter and pass it to the DataSource.
, -. underscorejs. ? . 250 ( ) .
HTML
<input type="text" id="search" />
script. , , .
(function($, kendo){
var timeout = 0;
var performSearch = function(){
var filter = [];
var dataSource = $('#grid').data('kendoGrid').dataSource;
var searchText = $.trim($('#search').val());
if(searchText){
filter.push({
logic: 'or',
filters:[
{ field: 'username', operator: 'contains', value: searchText },
{ field: 'name', operator: 'contains', value: searchText },
{ field: 'surname', operator: 'contains', value: searchText },
{ field: 'email', operator: 'contains', value: searchText }
]
});
}
dataSource.filter(filter);
};
$('#search').on('keyup, keypress, change, blur', function(){
clearTimeout(timeout);
timeout = setTimeout(performSearch, 250);
});
})(window.jQuery, window.kendo);
: , DataSource.
serverFiltering = true, Ajax, .
serverFiltering = false, JavaScript ( !). ( ) .