如何

2015-05-28 121 views
3

我使用nicolaskruchten數據透視表,使用顯示我的數據在nicolaskruchten pivottable.js動態應用濾鏡:如何

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

其表顯示正常,但現在我想在表中動態篩選我的數據。

其中一種方法是,過濾我的可用數據並使用過濾器數據重新繪製數據透視表。 我想知道是否有任何內置的過濾方法可用。

在pivot(input [,options])方法的options數組中有一個過濾對象的規定,但無法找到任何要實現的示例。

如果有人能告訴我如何進一步處理?

回答

2

每次過濾時都必須重新呈現表格。您可以傳遞filter屬性,該屬性是將行作爲參數並返回布爾值的函數。請參閱https://github.com/nicolaskruchten/pivottable/wiki/Parameters#pivotinput-options

我應該補充一點,您應該提交一份Github問題以獲得此庫的幫助,而不是在StackOverflow上提出問題。

+0

感謝@nicolaskruchten,爲您的幫助和時間,它幫助我,爲我工作。 下面是我做的方式: 'var filterBy = {filterCol:「country」,filterValue:[「USA」]}; optObject ['filter'] = function(rowObj)if(filterBy.filterValue.indexOf(rowObj [filterBy.filterCol])> - 1)return true; 否則返回false; };' – Mayur

+0

@Mayur:你可以發表你的評論作爲答案,所以我們可能會覺得它有用。謝謝。 –

+1

@MohamedThaufee我已經添加爲現在的答案。 – Mayur

-1

我用搜索/選擇框來動態地過濾數據。 過濾器的數據是從後端動態提供的。

index.html中:

-------------- //搜索選擇框1 --------------//搜索選框2 ...

============== //透視表

實際上,你可以通過一個過濾器的屬性。但從內存的角度來看,這將是一個更好的實現。

通過實施要顯示的缺省記錄集,可以使用動態過濾器限制正在加載到前端的數據。

+0

由於答案並不清楚,我可能會下調它,甚至可能會增加更多的困惑。沒有提琴手或示例代碼。 – alexandergs

0

下面是我做到這一點的方式。並解決了我的查詢。

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

    optObject['filter']=function(rowObj){ 
if(filterBy.filterValue.indexOf(rowObj[filterBy.filterCol])>‌​-1) return true; 
else return false; 
}; 
+0

我添加了一個JSFiddle。你能編輯代碼並應用你的過濾器嗎? JsFiddle:https://jsfiddle.net/w86bgq9o/474/ –