1

アイテムが3つしかないラリーグリッドがあります。グリッドには、ページごとに25/50/100/etcを表示するためのリンクが自動的に表示されます。たとえば、50をクリックすると、「Loading ...」という一定のスピナーが表示され、JSコンソールで「メソッド'indexOf'...を呼び出せません」というキャッチされないエラーが表示されます。

これは私のデータストアに何かが欠けていることを意味すると思いますか?

グリッドのものは次のとおりです。

        var resultsModel = Ext.define('ResultsModel', {
            extend: 'Ext.data.Model',
            fields: [
            {name: 'FID', type: 'string'},
            {name: 'TestName', type: 'string'},
            {name: 'TestDuration', type: 'string'},
            {name: 'Verdict', type: 'string'},
            ]       
        });

this.resultsStore = Ext.create('Ext.data.Store'、{model:'ResultsModel'、pageSize:25});

        this.down('#testResults').add({
                xtype: 'rallygrid',
                store: this.resultsStore,
                width: 800,
                viewConfig: {
                stripeRows: true,
                emptyText: "No test cases run"
                },
                columnCfgs: [
                    {
                        text: 'TestCase', dataIndex: 'FID', width: 65 
                    },
                    {
                        text: 'Test Name', dataIndex: 'TestName', flex: 1
                    },
                    {
                        text: 'Run Time (s)', dataIndex: 'TestDuration', width: 75
                    },                      
                    {
                        text: 'Verdict', dataIndex: 'Verdict', width: 65, 
                        renderer: function(value){
                            if((value == "Fail") || (value == "Error")){
                                return Ext.String.format("<div style='background-color:#F00;color:#FFF;font-weight:bold;text-align:center'>{0}</div>", value);
                            }
                            else{
                                return Ext.String.format("<div style='background-color:#2EFE2E;color:#000;font-weight:bold;text-align:center'>{0}</div>", value);

                            }
                        }
                    }

                ]
            });

データストアに押し込まれているデータは次のとおりです。

    Ext.Array.each(data, function(record) {     
        records.push({
            FID: record.get('TestCase')['FormattedID'],  //record.data.TestCase might work too.
            TestName: record.get('TestCase')['Name'],
            TestDuration: record.get('Duration'),
            Verdict: record.get('Verdict')
        });
    });

    this.resultsStore.loadData(records, false);

Extが反復している配列内のデータは、テスト実行のフェッチにすぎません。

コンソール出力は次のとおりです。

Uncaught TypeError: Cannot call method 'indexOf' of undefined sdk-debug.js:5304
Ext.apply.urlAppend sdk-debug.js:5304
Ext.define.buildUrl sdk-debug.js:26016
Ext.define.buildRequest sdk-debug.js:25859
Ext.define.doRequest sdk-debug.js:26059
Ext.define.read sdk-debug.js:25828
Ext.define.load sdk-debug.js:44668
Base.callParent sdk-debug.js:2894
Ext.define.load sdk-debug.js:45283
Ext.define.read sdk-debug.js:44420
Ext.define.loadPage sdk-debug.js:45562
Ext.define.changePageSize sdk-debug.js:96872
(anonymous function) sdk-debug.js:1540
(anonymous function)
wrap
4

1 に答える 1

0

この例を見たことがありますか?

https://rally1.rallydev.com/apps/2.0p/doc/#!/example/GridWithFreeformData

グリッドとうまく連携し、自動的にモデルを作成してカスタム データをロードするストアを作成しました。

于 2012-06-14T21:58:54.110 に答える