我一直在尝试使用datagrid-filter在表内的列中实现完全匹配搜索时遇到问题。

例如:
如果我搜索“名称1”,则在名称列下,搜索结果仅显示名称1。
谁能教我该怎么做?
非常感谢您的帮助。

        $(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);
    });


请参考这个jsfiddle:
http://jsfiddle.net/6u2b8pyp/

最佳答案

准备在文档开头添加以下内容,以避免区分大小写的行为

$.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'
            }])


将做Your fiddle mod

10-08 05:00