【问题标题】:SlickGrid Custom FilterSlickGrid 自定义过滤器
【发布时间】:2013-04-11 19:05:59
【问题描述】:

在这里搜索,似乎没有找到答案。

我使用 SlickGrid 设置了一个非常复杂的网格。

搜索功能位于自定义工具栏中。我将它连接到网格函数的调用。

例如:

[HTML]

 <input name='name' id='id' class='searchable'>

[JS]

$('.searchable').on('change' , function() {
     var searchTerm = {};     
         searchTerm[$(this).attr('name')] = $(this).val();

     dataview.setFilterArgs(searchTerm);
     dataview.refresh();
});

我可以看到参数传递给自定义过滤器

var customFilter = function(item, args) {
    ***$.each(args , function(key , val) {
        if (val!=='' && val!==null) {
           return (item[key] == val);
        }
    });***
return true;
}

[!] 问题是当你在 $.each 里面时,如果你“返回”它只会跳过循环。但是在函数之外没有任何返回。

但网格上什么也没有发生。没有任何东西被过滤

这是我的设置

dataview = new Slick.Data.DataView();
grid = new Slick.Grid(grid_id , dataview , columns , options);
grid.selectionModel(new Slick.RowSelectionModel());

grid.init();

dataview.beginUpdate();
dataview.setItems(gridData);
dataview.setFilter(customFilter);
dataview.endUpdate();

我一直在关注 github 上的两个过滤器示例。但除此之外我看不出有什么不同

如果我用

初始化数据视图
dataview = new Slick.Data.DataView({inlineFilters: true});

我收到一个错误:

未捕获的 SyntaxError:未定义标签“_coreloop”(slick.dataview.js 行:639)

尝试阅读代码,但缺少 cmets ......所以我真的不知道是什么问题。

有人遇到过类似的问题吗?

【问题讨论】:

  • 您要进行什么样的过滤搜索?我给出的示例链接是我一直使用的,它在每一列的顶部嵌入了一个搜索字段,因此很容易过滤。您给出的示例是针对特定列的,并且是不同的方法,您到底要过滤什么?
  • 我的错 :) 找到了原因。这是过滤功能。我正在使用 $.each(args , function(key, val) { return val; }); //但实际上什么都没有返回。傻我!感谢您的回复。

标签: jquery search filter slickgrid


【解决方案1】:

如果将dataView和columnFilters声明为全局变量,则可以调用该函数:

function SetfilterOnGrid(SearchPhrase) {
    columnFilters = {"1": SearchPhrase};
    dataView.refresh();
}

数字“1”是列 ID,SearchPhrase 是您在网格中搜索的短语

至于清除过滤器可以使用这个功能:

function ClearFilterOnGrid()
{
    columnFilters = {};
    dataView.refresh();
}

【讨论】:

    猜你喜欢
    • 2021-02-16
    • 2013-09-18
    • 2014-04-28
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2011-01-24
    • 2015-05-28
    • 2016-07-01
    相关资源
    最近更新 更多