在这里搜索,似乎找不到答案。
我用 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)
尝试阅读代码但缺少注释......所以我真的不知道问题出在哪里。
有人遇到类似的问题吗?