【问题标题】:Extjs 4 how to return xml data with additional information from server to extjs controller?Extjs 4 如何将带有附加信息的 xml 数据从服务器返回到 extjs 控制器?
【发布时间】:2013-02-08 12:32:27
【问题描述】:

希望有人能帮帮我。

我想在本地加载带有 xml 文件数据的网格。 我创建了模型、商店和网格。我在网格的渲染事件中加载商店。

问题是, 商店已加载,但网格仍为空。我在控制台查看了网格,网格项包含加载的数据,但网格不包含屏幕上的数据。

这是模型

Ext.define('BTOM.model.test.test', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'string' },
        { name: 'name', type: 'string' },
        { name: 'phone', type: 'string' }
    ]
});

这里是商店

Ext.define('BTOM.store.test.test', {
    extend: 'Ext.data.Store',
    model: 'BTOM.model.test.test',
    autoLoad: false,

    proxy: {
        type: 'memory',
        reader: {
            type: 'xml',
            root: 'users',
            record: 'user'
        }
    }
});

还有网格

Ext.define('BTOM.view.test.test', {
    extend: 'Ext.grid.Panel',
    store: 'BTOM.store.test.test',
    alias: 'widget.test',
    title: 'Test',

    initComponent: function () {

        this.columns =
        [
            { header: "Id", width: 120, dataIndex: 'id', sortable: false },
            { header: "Name", width: 180, dataIndex: 'name', sortable: false },
            { header: "Phone", width: 115, dataIndex: 'phone', sortable: false}
        ];

        this.callParent(arguments);
    },
});

我加载商店的位置是

render: function (grid, eOpts) {
    var store = grid.getStore();
    var data =
        '<?xml version="1.0" encoding="utf-8"?>' +
           '<users> ' +
              '<user><id>1</id><name>Bll QASD</name><phone>333 2211</phone></user> ' +
              '<user><id>2</id><name>Asd QWF</name><phone>444 2211</phone></user> ' +
              '<user><id>3</id><name>Zas QWE</name><phone>555 2211</phone></user> ' +
           '</users>';
        var dataXml = (new DOMParser()).parseFromString(data, 'text/xml');
    console.log(dataXml);
    store.loadRawData(dataXml, true);
    console.log(grid);

}

dataXML 文档的创建没有问题。 网格似乎包含数据(通过萤火虫,我可以看到) 但是datagrid是空的,不显示数据!

【问题讨论】:

    标签: extjs


    【解决方案1】:

    好的,错误是您正在定义商店但没有创建它。 所以网格只有商店的名称,但它需要一个商店实例, 还是您在上面的代码 sn-p 中遗漏了一些东西。 我使用了相同的代码,这是一个运行示例: https://fiddle.sencha.com/#fiddle/oel

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多