Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用loadData()在ExtJS gridpanel中加载数据_Javascript_Extjs_Store_Gridpanel - Fatal编程技术网

Javascript 无法使用loadData()在ExtJS gridpanel中加载数据

Javascript 无法使用loadData()在ExtJS gridpanel中加载数据,javascript,extjs,store,gridpanel,Javascript,Extjs,Store,Gridpanel,我需要定期在网格存储中添加新数据。存储由以下代码定义: this.reader = new Ext.data.JsonReader({ idProperty: 'id', fields: this.lesFields }); this.ds = new Ext.data.GroupingStore({ reader: this.reader, data: this.leData, sortInfo: {fie

我需要定期在网格存储中添加新数据。存储由以下代码定义:

this.reader = new Ext.data.JsonReader({
        idProperty: 'id',
        fields: this.lesFields
    });
this.ds = new Ext.data.GroupingStore({
        reader: this.reader,
        data: this.leData,
        sortInfo: {field: 'dendisc', direction: 'ASC'},
        groupField: 'categorie'
    });
当我需要附加一些新数据时,我使用
this.getStore().loadData(this.leData)
来完成。从技术上讲,数据确实出现在网格的存储中,但我在显示屏上只看到零(在
int
字段中)和空白字符串(在
字符串
字段中)。我在Chrome的控制台上做了一些研究,发现
data
属性和
json
属性在
this.getStore().data
中不一样。在
json
中有一个包含有效数据的数组,但在
data
中只有零和空白字符串


我错过什么了吗?
handleAs:'json'
属性是否可以挽救这种情况?

我不习惯对存储进行分组,但我认为读者希望看到一个类似于
{Id:0,Name:'MyName'}
的json对象或一组这样的对象,然后尝试将它们与注册的字段名进行匹配。但我不知道数组中有什么,所以这只是一个猜测,JsonReader需要定义根。root指向包含记录的子属性

以下是取自ext文档的示例:

var myReader = new Ext.data.JsonReader({
    idProperty: 'id'
    root: 'rows',
    totalProperty: 'totalRows',
    fields: [
        {name: 'id' },
        {name: 'name' }
    ]
});
以及要读取的样本数据:

{
    success: true,
    totalRows: 100,
    rows: [  // root
        { id: 1, name: 'Alf' },
        { id: 2, name: 'Ben' },
        { id: 3, name: 'Cod' },
        ...
    ]
}

如何准确定义要加载的数据?
data
json
属性的完整路径是
this.getStore().data.items[i]
@sra,抱歉,我无法发布屏幕截图
this.leData
看起来像
[Array[28],Array[28],Array[28],Array[28]]
。请看,读者是否能够识别数据。请参阅@Giku Yes,它会重新确认有数据,并尝试读取数据,但读卡器似乎无法将数据映射到相应的字段。因此,它可以识别数据,但无法匹配它,因此您只能得到空记录。现在你的数组中有JSON对象还是只有值?@Giku没关系,也许我完全错了,但是如果这个=>
array[28]
的内容与图像匹配,意味着这只是28个值的集合,读者如何知道哪个值属于哪个字段。。。所以他只是插入了一个空记录。据我所知,读者需要一个带有
{field:'value'}
@Giku的json对象,这就是我询问您试图加载的数据的更多细节的方式。非常感谢您的反馈,sra。你是对的,读者找不到与我附加的数据相匹配的。我搜索了一个解决方案,以便将数组
[…]
转换为对象
{…}
。我找到了一个函数,并对它做了一些修改。现在,数据的显示方式正是它应该显示的。再次感谢sra,祝您愉快。如果一切正常,您应该检查字段定义。