2013-04-18 292 views
1

在这里搜索,它似乎没有找到答案。SlickGrid自定义过滤器

我用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; 
} 

[问题是当你是insi的时候de。$ .each,如果你做“返回”它只跳过循环。但是没有什么能够回到函数之外的。

但在网格上没有任何问题。 NOTHING GET FILTERED

这里是我的设置

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

数据视图我得到一个错误:

未捕获的语法错误:未定义标签“_coreloop”(slick.dataview .js line:639)

尝试阅读代码但缺乏评论...所以我真的不知道问题是什么。

任何人都有类似的问题?

+0

这是你的基础范例吗? http://mleibman.github.io/SlickGrid/examples/example-header-row.html – ghiscoding

+0

http://mleibman.github.io/SlickGrid/examples/example4-model.html –

+0

什么样的过滤器搜索是你尝试去做?我给出的例子的链接是我一直使用的,它在每列的顶部嵌入一个搜索字段,因此很容易进行过滤。你给的例子是针对特定的列,而且是不同的方法,你究竟想要过滤什么? – ghiscoding

回答

1

你可以调用这个函数,如果你申报的数据视图和columnFilters为全局变量:

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

数字“1”是列ID的SearchPhrase的短语你在电网

搜索

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

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