当我点击另一个网格中的特定行时,我正在尝试加载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" }] }
答案 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