无法在' rallytreegrid'中创建自定义(虚拟)字段但是可以在'拉力赛中

时间:2017-07-19 11:10:28

标签: rally

如果我使用'拉力赛网'我可以创建如下所示的自定义列:

    xtype: 'rallygrid',
columnCfgs: [
    'FormattedID',
    'Name',
    {
    text: 'Custom Value',
    renderer: function(value, meta, record) {
        return myArray[record.data.FormattedID].myValue;
        }
    }],
context: this.getContext(),
enableBulkEdit: true,
showRowActionsColumn: true,
storeConfig: {
    model: 'PortfolioItem/Feature',
    pageSize: 25
}

当我这样做时,我的自定义价值'做我想要的。万岁!!

但是,如果我将其替换为'拉力赛网格'如下所示,它错误:

Ext.create('Rally.data.wsapi.TreeStoreBuilder').build({
    models: ['portfolioItem/feature'],
    autoLoad: true,
    enableHierarchy: true
}).then({
    success: this._onStoreBuilt,
    scope: this
});

_onStoreBuilt: function(store) {
    this.add({
                    xtype: 'rallytreegrid',
                    store: store,
                    context: this.getContext(),
                    enableEditing: true,
                    shouldShowRowActionsColumn: true,
                    enableBulkEdit: true,
                    enableRanking: false,
                    columnCfgs: [
                        'FormattedID',
                        'Name',
                         { text: 'Custom Value' }
                    ]
                });
}

因为这'自定义价值'字段我得到错误,即使有或没有渲染器部分。

Error: success callback for Deferred transformed result of Deferred transformed result of Deferred transformed result of Deferred threw: TypeError: Unable to get property 'substring' of undefined or null reference

如果我删除了'自定义价值'它很有效。

我做错了什么,拜托?

1 个答案:

答案 0 :(得分:1)

我希望我有一个很好的答案 - 这似乎是一个错误。幸运的是,解决方法很简单 - 您只需要为列添加xtype。规则网格必须正确默认,而树网格不是。

{ 
    xtype: 'gridcolumn', 
    text: 'Custom Value', 
    renderer: function(value, meta, record) {
        return 'rendered output goes here';
    }
}