Kendo 使用包含运算符的网格过滤器,从名称字段的开头开始过滤
Kendo Grid Filter using contains operator, starts filtering from the beginning of the name field
当我使用过滤器时,它只从名称字段的开头开始过滤。
如果我输入 "J" 那么它会得到所有以 J 开头的名字,但是如果我决定以字母 "D" 开头,我不会返回任何数据,这对我来说没有意义,因为我使用的运算符是 "contains".
如何让此过滤器从值中的任意位置进行搜索?
var data = [{
ID: 1,
Name: "Alfred Kramps"
},
{
ID: 2,
Name: "Albert Pearson"
},
{
ID: 3,
Name: "John Doe"
},
{
ID: 4,
Name: "Jane Doe"
},
{
ID: 5,
Name: "John Bender"
},
{
ID: 6,
Name: "George Costanza"
},
{
ID: 7,
Name: "Jerry Seinfeld"
},
{
ID: 8,
Name: "Cosmo Kramer"
},
{
ID: 9,
Name: "Elaine Bennis"
},
{
ID: 10,
Name: "Newman Newman"
}
];
(function() {
LoadGrid();
})();
function LoadGrid() {
//$("#VendorsGridList").empty();
$("#VendorsGridList").kendoGrid({
dataSource: {
data: data
},
schema: {
model: {
fields: {
ID: {
type: "number"
},
Name: {
type: "string"
}
}
}
},
columns: [{
field: "ID",
title: "ID",
hidden: true
},
{
field: "Name",
title: "Name",
filterable: {
cell: {
showOperators: false,
operator: "contains"
}
}
}
],
scrollable: true,
sortable: true,
pageable: false,
selectable: "row",
filterable: {
mode: "row"
},
height: 300
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.common.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.default.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.mobile.all.min.css">
<script src="https://kendo.cdn.telerik.com/2019.1.220/js/kendo.all.min.js"></script>
<div id="VendorsGridList"></div>
请添加属性 suggestionOperator 以获得针对您正在筛选的列的建议。您可以查看 API reference 了解更多详情。
filterable: {
cell: {
operator: "contains",
suggestionOperator: "contains"
}
}
当我使用过滤器时,它只从名称字段的开头开始过滤。
如果我输入 "J" 那么它会得到所有以 J 开头的名字,但是如果我决定以字母 "D" 开头,我不会返回任何数据,这对我来说没有意义,因为我使用的运算符是 "contains".
如何让此过滤器从值中的任意位置进行搜索?
var data = [{
ID: 1,
Name: "Alfred Kramps"
},
{
ID: 2,
Name: "Albert Pearson"
},
{
ID: 3,
Name: "John Doe"
},
{
ID: 4,
Name: "Jane Doe"
},
{
ID: 5,
Name: "John Bender"
},
{
ID: 6,
Name: "George Costanza"
},
{
ID: 7,
Name: "Jerry Seinfeld"
},
{
ID: 8,
Name: "Cosmo Kramer"
},
{
ID: 9,
Name: "Elaine Bennis"
},
{
ID: 10,
Name: "Newman Newman"
}
];
(function() {
LoadGrid();
})();
function LoadGrid() {
//$("#VendorsGridList").empty();
$("#VendorsGridList").kendoGrid({
dataSource: {
data: data
},
schema: {
model: {
fields: {
ID: {
type: "number"
},
Name: {
type: "string"
}
}
}
},
columns: [{
field: "ID",
title: "ID",
hidden: true
},
{
field: "Name",
title: "Name",
filterable: {
cell: {
showOperators: false,
operator: "contains"
}
}
}
],
scrollable: true,
sortable: true,
pageable: false,
selectable: "row",
filterable: {
mode: "row"
},
height: 300
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.common.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.default.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.mobile.all.min.css">
<script src="https://kendo.cdn.telerik.com/2019.1.220/js/kendo.all.min.js"></script>
<div id="VendorsGridList"></div>
请添加属性 suggestionOperator 以获得针对您正在筛选的列的建议。您可以查看 API reference 了解更多详情。
filterable: {
cell: {
operator: "contains",
suggestionOperator: "contains"
}
}