Filter 通过比较字段筛选Kendo UI数据源
我有一个剑道UI数据源,我想通过比较字段来过滤它。 这是我的数据源:Filter 通过比较字段筛选Kendo UI数据源,filter,kendo-ui,kendo-datasource,Filter,Kendo Ui,Kendo Datasource,我有一个剑道UI数据源,我想通过比较字段来过滤它。 这是我的数据源: var dataSource = new kendo.data.DataSource({ data: [ { appointment: "Hairdresser", start: new Date("somedate"), end: new Date("somedate")}, { appointment: "Meeting", start: new Date("somedate"), end: new
var dataSource = new kendo.data.DataSource({
data: [
{ appointment: "Hairdresser", start: new Date("somedate"), end: new Date("somedate")},
{ appointment: "Meeting", start: new Date("somedate"), end: new Date("somedate")},
{ appointment: "Shopping", start: new Date("somedate"), end: new Date("somedate")}
]
});
我想这样过滤它:
SELECT * FROM dataSource WHERE start > end;
dataSource.filter({
"field": "start",
"operator": "gt",
"value": ?????
});
如何使用过滤器实现这一点?内置过滤器不可能实现这一点。相反,我建议您创建一个按钮,单击该按钮将向服务器发送一些额外的参数,您可以在服务器上自行执行此类过滤 要发送其他字段并执行读取请求,您可以这样做
dataSource.read({ myCustomFilter:true });
如果您想在客户端执行此操作,我建议使用类似lo dash的方法(或者,根据您需要支持的浏览器,简单地使用本机实现)来实现过滤器 您可以将所有数据存储在外部数组中,并仅将筛选后的数据保留在绑定到UI的数据源中(使用更新):
我怀疑:(我不想在服务器端进行过滤,因为我想在上下文中保留原始数据集。嗨,是的,这与我最终得到的类似。
var data = [{
name: 'barney',
age: 36,
start: new Date(2011, 1, 1),
end: new Date(2012, 1, 1)
}, {
name: 'fred',
age: 40,
start: new Date(2011, 1, 1),
end: new Date(2010, 1, 1)
}];
var filtered = _.filter(data, function (item) {
return item.start > item.end;
});
dataSource.data(filtered);