2012-07-26 77 views
1

我有一個rallygrid對象和一個rallytagpicker對象創建。我想要做的就是過濾拉力賽網格,只包含任意所選標籤的項目。我已經嘗試了幾種不同的方式來完成這一點,但我似乎無法讓它工作。這裏是我的tagpicker代碼:通過標記選擇過濾rallygrid

this.tagPicker = this.add({ 
    xtype: 'rallytagpicker', 
    autoExpand: true, 
    listeners: { 
     select: this._onTagSelect, 
     scope: this 
    } 
}); 

所以,我具有​​第一個問題是選擇實際上並不似乎當我從下拉菜單中選擇一個標籤下火,其次,一旦它會觸發我如何刷新網格上的過濾器以包含具有此新標籤的項目?

因爲它是現在我使用的過濾對象,如以下過濾:

{ property: 'Tags.Name', operator: 'contains', value: 'My Tag' } 

這將是很好,如果我可以存儲所有的標籤數組進行過濾,並通過全陣列式的一次而不是每個標籤都有一個單獨的過濾器對象。那可能嗎?

回答

0

如果您改用change事件會怎麼樣?

要建立你想要的過濾器,以公正或在一起的每個標籤:

Rally.data.QueryFilter.or([ 
    { 
     property: 'Tags.Name', 
     operator: '=' 
     value: 'My Tag' 
    }, 
    { 
     property: 'Tags.Name', 
     operator: '=' 
     value: 'My Tag2' 
    }, 
]); 

然後刷新就可以使用它的刷新方法電網,傳遞新的過濾器:

grid.refresh({ 
    filters: [ 
     //filters here 
    ] 
}); 
+0

這似乎沒有工作,因爲Rally.data.QueryFilter.or採用單個QueryFilter對象與另一個QueryFilter對象組合,而不是它們的數組。有沒有辦法將幾個QueryFilter對象組合起來而不需要爲每個對象調用?實際上,只有在storeConfig中更改一個選項纔是想法,因此過濾器的默認設置是將過濾器組合爲OR,而不是AND。 – 2012-08-09 16:10:45

+0

上面的代碼應該可以工作。 Rally.data.QueryFilter有靜態和/或方法將查詢過濾器數組連接到一個過濾器中。看起來這些文檔在某種程度上是缺失的。我會盡快解決的。 – 2012-08-10 12:00:20

+0

它告訴我Rally.data.QueryFilter.or在嘗試使用上面的代碼時不是函數。有任何想法嗎? – 2012-08-17 21:08:42