1

我创建了一个 rallygrid 对象和一个 rallytagpicker 对象。我想做的是过滤 rallygrid 以仅包含包含任何选定标签的项目。我尝试了几种不同的方法来实现这一点,但我似乎无法让它发挥作用。这是我的标签选择器代码:

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

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

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

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

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

4

1 回答 1

0

如果你改用 change 事件呢?

要为每个标签构建过滤器,您只需将它们或它们一起构建:

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

然后刷新网格,你可以使用它的 refresh 方法,传递新的过滤器:

grid.refresh({
    filters: [
        //filters here
    ]
});
于 2012-07-30T21:14:23.720 回答