extjs中具有不同数据类型的同一商店

时间:2012-11-08 12:01:46

标签: extjs grid extjs4

我有用于网格和柱形图的存储,但值是字符串形式(服务器端格式化的数量,不能在客户端完成)。由于字符串格式的数量,未呈现的网格。解决方案可能是为网格和图表制作所需数据类型的单独存储。但这是低效的方式,因为相同的数据来自服务器。

这就是我正在做的事情

if (!window.GridModel) {
            if (!Ext.ModelManager.isRegistered('GridModel')) {
                Ext.define('GridModel', {
                    extend: 'Ext.data.Model',
                    fields: [{
                        name: 'LocCode',
                        type: 'string'
                    }, {
                        name: 'LocLvl',
                        type: 'string'
                    }, {
                        name: 'LocName',
                        type: 'string'
                    },

                    {
                        name: 'cost1',
                        type: 'string'
                    }, {
                        name: 'Cost2',
                        type: 'string'
                    }, {
                        name: 'cost3',
                        type: 'string'
                    }


    ]
            });
        }
    }

图表(非缺陷)

if (!window.chartModel) {
            if (!Ext.ModelManager.isRegistered('chartModel')) {
                Ext.define('chartModel', {
                    extend: 'Ext.data.Model',
                    fields: [{
                        name: 'LocCode',
                        type: 'string'
                    }, {
                        name: 'LocLvl',
                        type: 'string'
                    }, {
                        name: 'LocName',
                        type: 'string'
                    },

                    {
                        name: 'cost1',
                        type: 'float'
                    }, {
                        name: 'Cost2',
                        type: 'float'
                    }, {
                        name: 'cost3',
                        type: 'float'
                    }


    ]
            });
        }
    }

一种方法可能是将一个商店复制到另一个商店,其中包含更改的数据类型的字段,但我不知道如何将一个商店复制到另一个商店并更改了数据类型的字段。

我正在使用 ExtJS 4.0.7

1 个答案:

答案 0 :(得分:3)

您可以在同一商店中使用不同的类型,但必须手动加载它们,或在加载时使用一些技巧。

不确定您是否可以使用完全不同的类型,但可以使用不同的子类型。

以下是根据响应动态更改商店类型的示例:

http://extjs-tutorials.blogspot.ca/2012/06/polymorphic-json-change-model-subclass.html