5

我正在使用 nicolaskruchten 数据透视表,用于显示我的数据:

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

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

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

在 pivot(input [,options]) 方法的选项数组中有一个过滤器对象的规定,但找不到任何示例来实现。

如果有人可以建议我如何进一步进行?

4

3 回答 3

4

每次过滤时都必须重新渲染表格。您可以传递一个filter属性,该属性是一个将行作为参数并返回布尔值的函数。请参阅https://github.com/nicolaskruchten/pivottable/wiki/Parameters#pivotinput-options

我应该补充一点,一般来说,你应该提交一个 Github 问题来获得这个库的帮助,而不是在 StackOverflow 上提问。

于 2015-05-28T13:41:21.370 回答
0

以下是我的做法。它解决了我的查询。

 var filterBy={filterCol:"country",filterValue:["USA"]};

    optObject['filter']=function(rowObj){ 
if(filterBy.filterValue.indexOf(rowObj[filterBy.filterCol])>‌​-1) return true; 
else return false; 
};
于 2017-01-16T09:44:27.920 回答
-1

我使用搜索/选择框来动态过滤数据。过滤器的数据是从后端动态馈送的。

在 index.html 中:

-------------- //搜索选择框1 -------------- //搜索选择框2 ...

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

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

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

于 2016-07-19T00:44:23.867 回答