如何在nicolaskruchten pivottable.js中动态应用过滤器

时间:2015-05-28 13:10:20

标签: javascript pivot-table pivottable.js

我正在使用nicolaskruchten pivottable,用于显示我的数据:

$('#output').pivot([
    {country: "USA", city: "Boston"},
    {country: "USA", city: "NYC"},
    {country: "UK", city: "London"},
],
{
    rows: ["country"],
    cols: ["city"]
});

它正确显示表格,但现在我想在表格中动态过滤我的数据。

其中一种方法是过滤我的可用数据并使用过滤数据重绘数据透视表。 我想知道是否有任何内置的过滤方法可用。

在pivot(input [,options])方法的options数组中有一个过滤器对象,但是找不到任何要实现的例子。

如果有人可以建议我如何继续进行?

3 个答案:

答案 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 ...

============== //数据透视表

您实际上可以传递过滤器属性。但从内存的角度来看,这将是一个更好的实现。

通过实现要显示的默认记录集,您可以使用动态过滤器限制加载到前端的数据。