【发布时间】: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