Javascript 数据网格过滤器中的精确匹配
我在尝试使用datagrid筛选器在表中的列中实现精确匹配搜索时遇到问题 例如: 在列Name下,如果搜索“Name 1”,搜索结果将仅显示Name 1。 有人能教我怎么做吗? 我非常感谢你的帮助Javascript 数据网格过滤器中的精确匹配,javascript,jquery,datagrid,Javascript,Jquery,Datagrid,我在尝试使用datagrid筛选器在表中的列中实现精确匹配搜索时遇到问题 例如: 在列Name下,如果搜索“Name 1”,搜索结果将仅显示Name 1。 有人能教我怎么做吗? 我非常感谢你的帮助 $(function(){ var rows = []; for(var i=1; i<=800; i++){ var amount = Math.floor(Math.random()*1000);
$(function(){
var rows = [];
for(var i=1; i<=800; i++){
var amount = Math.floor(Math.random()*1000);
var price = Math.floor(Math.random()*1000);
rows.push({
inv: 'Inv No '+i,
date: $.fn.datebox.defaults.formatter(new Date()),
name: 'Name '+i,
amount: amount,
price: price,
cost: amount*price,
note: 'Note '+i
});
}
$('#tt').datagrid({
view : scrollview,
striped : true,
pagination : false,
pageSize : 50,
singleSelect : false,
autoRowHeight: false,
remoteFilter : false,
remoteSort : true,
multiSort : true,
});
$('#tt').datagrid('enableFilter', [{
field:'amount',
type:'numberbox',
options:{
precision:0
},
op:['equal','notequal','less','greater']
}])
$('#tt').datagrid('loadData', rows);
});
$(函数(){
var行=[];
对于(var i=1;i根据),可以为过滤器指定默认运算符,如下所示:
$('#tt').datagrid({
(...)
defaultFilterOperator: 'equal'
});
这使用了精确的区分大小写的匹配,这可能是您想要的,也可能不是您想要的(“名称1”在名称为“名称1”时不起作用。我没有看到不区分大小写的选项。在文档开头添加以下内容,以避免区分大小写的行为
$.fn.datagrid.defaults.operators =
{
equal: {
text: 'Equal',
isMatch: function(source, value){
return source.toLowerCase() == value.toLowerCase();
}
}
};
替换
$('#tt').datagrid('enableFilter', [{
field:'amount',
type:'numberbox',
options:{
precision:0
},
op:['equal','notequal','less','greater']
}])
到
会的非常感谢您的帮助。我真的非常感谢您的帮助!
$('#tt').datagrid('enableFilter', [{
field:'amount',
type:'numberbox',
options:{
precision:0
},
op:['equal','notequal','less','greater']
},{
field:'name',
type:'textbox',
options:{
precision:0
},
defaultFilterOperator: 'equal'
}])