ExtJS4 - 从另一个网格加载存储

时间:2011-11-25 22:21:53

标签: extjs4

当我点击另一个网格中的特定行时,我正在尝试加载json存储。谁能看到我在这里做错了什么?在ext-all.js中,当数据未定义(来自调试器)时,错误会返回。

        Ext.define('Documents', {
            extend: 'Ext.data.Model',
            fields: [
                { name: 'index', type: 'int' },
                { name: 'path', type: 'string' }
            ]
        });

        var documents = new Ext.data.JsonStore({
            model: 'Documents',
            root: 'groupdocuments',
            autoLoad: false
        });

        // in the Ext.grid.Panel

        listeners: {
            itemclick: function () {

                var itemgroupid = rec.get('groupid');

                Ext.Ajax.request({
                    url: '/GetDocuments',
                    params: { groupId: itemgroupid },
                    success: function (result) {

                        var jsondata = Ext.decode(result.responseText);
                        documents.loadData(jsondata);
                    }
                });
            }
        }

        // the sample json returned from url
        // { "groupdocuments": [{ "index": 1, "path": "1.doc" }, { "index": 2, "path": "2.doc" }, { "index": 3, "path": "3.doc" }] }

1 个答案:

答案 0 :(得分:0)

看起来你需要转义路径数据。应该是{路径:“C:\\ something \\”}

另外为什么不使用网格分组功能?

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.feature.Grouping

进一步看,看起来loaddata函数期待一个数组。不是像你一样拥有rootdata对象的json对象。将侦听器更改为以下内容:

var jsondata = Ext.decode(result.responseText);
documents.loadData(jsondata.groupdocuments);

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store-method-loadData

或者你应该能够将loadRawData与完整的json对象一起使用。

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store-method-loadRawData