我正在使用nicolaskruchten pivottable,用于显示我的数据:
$('#output').pivot([
{country: "USA", city: "Boston"},
{country: "USA", city: "NYC"},
{country: "UK", city: "London"},
],
{
rows: ["country"],
cols: ["city"]
});
它正确显示表格,但现在我想在表格中动态过滤我的数据。
其中一种方法是过滤我的可用数据并使用过滤数据重绘数据透视表。 我想知道是否有任何内置的过滤方法可用。
在pivot(input [,options])方法的options数组中有一个过滤器对象,但是找不到任何要实现的例子。
如果有人可以建议我如何继续进行?
答案 0 :(得分:3)
每次过滤时都必须重新渲染表格。您可以传递filter
属性,该属性是一个以行作为参数并返回布尔值的函数。见https://github.com/nicolaskruchten/pivottable/wiki/Parameters#pivotinput-options
我应该补充一点,一般来说,你应该提交一个Github问题来获得这个库的帮助,而不是在StackOverflow上提问。
答案 1 :(得分:0)
以下是我的方式。它解决了我的问题。
var filterBy={filterCol:"country",filterValue:["USA"]};
optObject['filter']=function(rowObj){
if(filterBy.filterValue.indexOf(rowObj[filterBy.filterCol])>-1) return true;
else return false;
};
答案 2 :(得分:-1)
我使用搜索/选择框动态过滤数据。 过滤器的数据是从后端动态提供的。
在index.html中:
-------------- //搜索 - 选择框1 -------------- //搜索 - 选择框2 ...
============== //数据透视表
您实际上可以传递过滤器属性。但从内存的角度来看,这将是一个更好的实现。
通过实现要显示的默认记录集,您可以使用动态过滤器限制加载到前端的数据。