在MVC模式中 model表示模型,模型的意思是表示一个对象,每个fields表示对象的每一个属性,
如果你的model是完全无规律的话,那你就得重新考虑设计了,
设计成多个类型的model。如果你的model是一个类型的只是参数不同,那么就找出你的model的最大集合比如吧你一下子想显示人(model)的信息,一下子想显示植物(model)的信息,那你就得设计2个model分别对应不同view再比如你这会想显示男人(model)的信息,那会想显示女人(model)的信息,那么你就把男人和女人的所有的信息的并集设计一个model 叫人。
然后通过view的映射和隐藏显示来控制你想要显示的信息

解决方案 »

  1.   

    多谢,不过我好像想出一个办法啦。首先定义一个fields的变量,比如叫myFields。然后定义Ext.data.Model,在Model里面设置的时候fields:myFields。这样在其他地方操作的时候,如果是动态的fields,修改myFields的值,那么这个Model就会被自动修改啦。
      

  2.   

    从后台拿到数据后,直接修改,比如record.set(“name”,name)还是你想随时添加或删除model里的fields?
      

  3.   

    Ext.require(['*']);
    Ext.onReady(function () {var data = [{}];
    var data2 = [{OFF_PERIOD:'2013-09',QUOTANO:'YS1100',QUOTANAME:'&nbsp&nbsp&nbsp&nbsp主营业务收入',},{OFF_PERIOD:'2013-09',QUOTANO:'YS1200',QUOTANAME:'        通信服务收入'}];
    var varItems =[{
                       text: '指标ID',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'QUOTANO'
                   }, {
                       text: '指标名称',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'QUOTANAME'
                   }, {
                       text: '数据ID',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'QUOTAVALUENO'
                   }, {
                       text: '数据名称',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'QUOTAVALUENAME'
                   }, {
                       text: '本部',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'BENBU',
                       field: {
                           xtype: 'numberfield'
                       }
                   }, {
                       text: '济南',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'JINAN',
                       field: {
                           xtype: 'numberfield'
                       }
                   }];
    var varItems2 =[{
                       text: '指标ID',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'QUOTANO'
                   }, {
                       text: '指标名称',
                       //width: 200,
                       sortable: false,
                       hidden: false,
                       dataIndex: 'QUOTANAME'
                   }];    
       
    var varfields =[
    { name: 'OFF_PERIOD', mapping: 'OFF_PERIOD', type: 'string' },
    { name: 'QUOTANO', mapping: 'QUOTANO', type: 'string' },
    { name: 'QUOTANAME', mapping: 'QUOTANAME', type: 'string' },
    { name: 'QUOTAVALUENO', mapping: 'QUOTAVALUENO', type: 'string' },
    { name: 'QUOTAVALUENAME', mapping: 'QUOTAVALUENAME', type: 'string' },
    ]; 

    var varfields2 =[
    { name: 'OFF_PERIOD', mapping: 'OFF_PERIOD', type: 'string' },
    { name: 'QUOTANO', mapping: 'QUOTANO', type: 'string' },
    { name: 'QUOTANAME', mapping: 'QUOTANAME', type: 'string' }
    ]; 


        var vardate = Ext.create('Ext.form.DateField', {        fieldLabel: '账期',
            labelWidth: 50,
            name: 'Off_period',
            maxValue: new Date(),
            value: new Date(),
            format: 'Y-m'    });
    var northPanel = Ext.create('Ext.form.Panel', {
            region: 'north',
            layout: {
                columns: 3,
                type: 'table'
            },
            height: 55,
            title: '业务管理',
            items: [
    vardate, {
        xtype: 'button',
        anchor: '100%',
        width: 75,
        text: '查询',
    handler: function () {
        var Store = Ext.create('Ext.data.Store', {
    fields:varfields2,
    data: data2
    }); centerPanel.reconfigure(Store, varItems2);  //定义grid的store和column    


        }
    },
    {
        xtype: 'button',
        anchor: '100%',
        width: 75,
        text: '查询2',
    handler: function () {
        var Store = Ext.create('Ext.data.Store', {
    fields:varfields,
    data: data
    }); centerPanel.reconfigure(Store, varItems);  //定义grid的store和column    


        }
    }        ]
        });
        var centerPanel = Ext.create('Ext.grid.Panel', {
            region: 'center', title: '业务管理',
    height: 55,
            columns:[]
        });    Ext.create('Ext.container.Viewport', {
            layout: 'border',
            renderTo: Ext.getBody(),
            items: [northPanel,  centerPanel]
        });
    });
      

  4.   

    其实不用这么复杂,在grid渲染完之后,只需要grid.store.add({}),就能增加一行了
      

  5.   

    Ext.define('chartModel', {
    extend : 'Ext.data.Model',
    fields:['rptYm']
    });var fields=[];//需要修改的fields
    chartModel.setFields(fields);
     chart.getStore().update(this,chartModel,'Ext.data.Model.COMMIT');