Angular Slickgrid对多列进行过滤



是否有一种方法可以过滤多个列与角滑网格?

我有在不同区域显示相同信息的列,并且我希望用户能够使用一个过滤器来获得任何行匹配,而不管哪个区域(列)匹配。

感谢

简短的回答是不可以(但下面有一个较长的Yes选项),每个过滤器显示在每个列的顶部是有原因的,因为它们与所述列相关联(通过循环遍历每个列定义,这些过滤器是动态创建的)。但是,您可以在过滤时使用另一列,根据数据使用queryFieldFilterqueryFieldNameGetterFn,但每次也只能与1列相关联。

这是否意味着你根本不能做这件事?不一定,您可以通过SlickGrid DataViewdataView.setFilter(myFilter);提供不同的filter实现,但如果您这样做,那么您将绕过所有列过滤器(换句话说,当您覆盖DataView过滤器方法时,所有默认列过滤器都不再工作),但也许这对您来说是可以接受的,将其作为全局过滤器并禁用过滤器标题行。你可以拿这个SlickGrid的例子来看看代码,它有一个带有多个条件的外部过滤器,这可能对你有用。

function myFilter(item, args) {
if (item["percentComplete"] < args.percentCompleteThreshold) {
return false;
}
if (args.searchString != "" && item["title"].indexOf(args.searchString) == -1) {
return false;
}
return true;
}

基本上我想说的是,你确实可以重写你自己的过滤器实现,但是这样做,你肯定会破坏默认的列过滤器实现。我通常从不这样做,因为它需要更多的工作,而且只有一个全局搜索过滤器也没有那么有效,但这取决于你和你的用例。

在网格中添加该列并要求用户按区域过滤它会更简单

请注意,我是angular - slikgrid的作者

最新更新