通过标签选择过滤拉力赛网格

时间:2012-07-26 22:42:47

标签: javascript rally

我有一个拉力网格对象和一个rallytagpicker对象创建。我想要做的是过滤拉力网格,只包含任何所选标签的项目。我已经尝试了几种不同的方法来实现这一点,但我似乎无法让它工作。这是我的tagpicker代码:

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

所以,我遇到的第一个问题是,当我从下拉列表中选择一个标签时, select 实际上似乎没有触发,其次,一旦它触发了我怎么能刷新网格上的过滤器包含具有此新标记的项目?

就像现在一样,我正在使用过滤器对象进行过滤,如下所示:

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

如果我可以将所有标签存储在数组中并且一次传递整个数组而不是为每个标签设置单独的过滤器对象,那将是很好的。这可能吗?

1 个答案:

答案 0 :(得分:0)

如果您使用更改事件,该怎么办?

为每个标记构建您想要的过滤器或者它们:

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

然后要刷新网格,您可以使用其刷新方法,传递新的过滤器:

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