OnaBai 的回答不像 dataTables 那样工作,数据表将空格视为和跨字段。在小提琴中,如果您键入“chef 36”,它不会显示任何结果 dataTables 搜索将显示 productid 为 5 的行,因为它在一列中有厨师,而在另一列中有 36。正确的代码看起来像这样http://jsfiddle.net/Naka3/38/。
$("#category").keyup(function () {
var selecteditem = $('#category').val();
var kgrid = $("#grid").data("kendoGrid");
selecteditem = selecteditem.toUpperCase();
var selectedArray = selecteditem.split(" ");
if (selecteditem) {
//kgrid.dataSource.filter({ field: "UserName", operator: "eq", value: selecteditem });
var orfilter = { logic: "or", filters: [] };
var andfilter = { logic: "and", filters: [] };
$.each(selectedArray, function (i, v) {
if (v.trim() == "") {
}
else {
$.each(selectedArray, function (i, v1) {
if (v1.trim() == "") {
}
else {
orfilter.filters.push({ field: "ProductName", operator: "contains", value:v1 },
{ field: "QuantityPerUnit", operator: "contains", value:v1});
andfilter.filters.push(orfilter);
orfilter = { logic: "or", filters: [] };
}
});
}
});
kgrid.dataSource.filter(andfilter);
}
else {
kgrid.dataSource.filter({});
}
});