javascript - 无法使用 loadData() 在 ExtJS 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: {field: 'dendisc', direction: 'ASC'},
        groupField: 'categorie'
    });

当我需要附加一些新数据时,我使用 this.getStore().loadData(this.leData) 来执行此操作。从技术上讲,数据确实出现在网格的存储中,但我在显示屏上只看到零(在 int 字段中)和空白字符串(在 string 字段中)。我在 Chrome 的控制台中做了一些研究,发现 data属性(property)和json this.getStore().data 中的属性不一样。在 json有包含有效数据的数组,但在 data 中只有零和空白字符串。

我错过了什么吗? handleAs:'json'会吗?属性(property)拯救情况?

最佳答案

JsonReader 需要定义 root。 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' },
        ...
    ]
}

关于javascript - 无法使用 loadData() 在 ExtJS gridpanel 中加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991404/

相关文章:

javascript - 将 javascript 数组连接为数组的数组

javascript - 如何将日期选择器插入 MS Excel 单元格

ExtJS - 动态格式化 GridPanel 行?

Extjs:警报消息框位置

javascript - Extjs 不显示来自商店的数据

javascript - 如何在 Canvas 元素上呈现来自 FontAwesome 的字形

javascript - 如何在 JQuery 中调整图像大小

javascript - 丰富的 Javascript UI 框架、EXT、DOJO 和 YUI

sencha-touch-2 - 无法在 sencha touch 2 中获取存储

ios - 关于 App Store 批准的 PhoneGap