slickgrid过滤显示错误的行

时间:2013-11-26 06:21:52

标签: javascript slickgrid

基本上它与给定的http://mleibman.github.io/SlickGrid/examples/example-header-row.html几乎相同 我只做了一些改变:

Fist是过滤器仅按

列应用了几列
    if(args.column.id == 'name' || args.column.id == 'contract'){
        var s = $("<input type='text'>");
        s.data('columndata', args.column.id)
        .val(columnFilters[args.column.id])
        .appendTo(args.node);
    };

第二个区别是数据未在构造中插入到DataView中。我有一个以json格式加载数据的ajax调用,然后使用dataView.setItems将数据数组注入DataView。

我做了第三次更改,我的过滤器会检查行,列中的值是否与完全匹配。

function filter(item){
for(var columnId in columnFilters){
    if(columnId != undefined && columnFilters[columnId] != ''){
    var c = obj.grid.getColumns()[obj.grid.getColumnIndex(columnId)];
    var value1 = item[c.field].toUpperCase();
    var value2 = columnFilters[columnId].toUpperCase();
    if(value1.indexOf(value2)==-1){
        return false;
    };
    };
};
return true;
};

通常过滤器正在运行。它甚至可以正确过滤。如果有2个项目(行)包含说'herb',则过滤器将找到2行。

但是,由于它找到了2行,它将显示2个第一行。

它以这种方式工作。如果过滤器找到N个正确值,它将显示前N行。

我确实尝试调试dataview,但它只运行行数而不是匹配param的行号

1 个答案:

答案 0 :(得分:0)

找到了问题的位置。我没有错误地覆盖方法getItem()返回错误的项目,我将行号传递给它