按父名称对WSAPI数据存储进行分组

时间:2014-04-09 18:49:15

标签: rally appsdk2

我正在创建一个rallygrid组件,并且希望将网格项目按其父级Name属性分组(如果我还可以显示父级的ID,则可以获得奖励)。我将groupBy:'Parent'配置添加到网格的storeConfig,并且对未返回任何结果感到惊讶。我也尝试使用groupBy:'Parent.Name',但仍然没有。

我知道这可以和所有者等其他领域一起使用,但我不知道为什么父母也不能使用。这是一个错误,还是我错误地设置了配置?

由于

2 个答案:

答案 0 :(得分:1)

更改storeConfig以防止记录在分组后尝试更新:

storeConfig : {
    remoteSort   : false,
    remoteGroup  : false,
    remoteFilter : false,
}

load事件添加一个侦听器,该事件根据该记录值为记录和组分配根级别属性。 (出于某种原因store.group('Parent.Name');不起作用。)

load: function(store) {
    store.each(function(record) {
        record.set('ParentName', record.get('Parent') && record.get('Parent').Name || '-- Unparented --');
    });

    store.group('ParentName');
}

答案 1 :(得分:0)

我认为它也是SDK的一个错误,但是对于WS API documentation,Parent,与Owner不同,或者Feature不可排序。

因此,当我使用groupField: 'Parent'时,网格为空,响应显示错误:

Ext.data.JsonP.callback6({"QueryResult": {..., "Errors": ["Cannot sort using attribute Parent"]

它尝试按Parent排序,但Parent属性不可排序。因此SDK遇到了WS API限制。

在旁注中,我没有使用groupBy,而是在商店使用groupFieldin this example我按看板字段分组):

var myStore = Ext.create('Rally.data.WsapiDataStore',{
        model: 'UserStory',
        groupField: 'c_MyKB',
        //...
    });

然后在网格中使用了功能:[{ftype:'grouping'}]

this._myGrid = Ext.create('Ext.grid.Panel', {
        store: myStore,
        features: [{ftype:'grouping'}],
                //...