请教一个问题,Extjs4.0如何动态修改store或者Model的Fields信息

wyanshan 2012-11-28 10:46:45
如题。因为我是动态列,那么Model需要随时变化。也就是说每次请求回来的数据,我需要修改现有的Model的Fields信息。没有看到Model有修改fields信息的方法。怎么做呢?
...全文
1286 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
z740003446 2014-10-20
  • 打赏
  • 举报
回复

Ext.define('chartModel', {
		extend : 'Ext.data.Model',
		fields:['rptYm']
	});

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


elesen 2014-10-15
  • 打赏
  • 举报
回复
用setFields
sleeper01 2014-03-20
  • 打赏
  • 举报
回复
其实不用这么复杂,在grid渲染完之后,只需要grid.store.add({}),就能增加一行了
江北雪 2013-10-22
  • 打赏
  • 举报
回复
Ext.require(['*']); Ext.onReady(function () { var data = [{}]; var data2 = [{OFF_PERIOD:'2013-09',QUOTANO:'YS1100',QUOTANAME:'    主营业务收入',},{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] }); });
梦爱家园 2013-09-12
  • 打赏
  • 举报
回复
你那个问题解决了么?可不可以说一下怎么解决的,我想做一个参考!
lcp15203117427 2013-08-30
  • 打赏
  • 举报
回复
你这个问题后来解决了么
NANU-NANA 2013-05-14
  • 打赏
  • 举报
回复
从后台拿到数据后,直接修改,比如record.set(“name”,name) 还是你想随时添加或删除model里的fields?
storyfolg 2013-05-13
  • 打赏
  • 举报
回复
后台动态处理好后传递到前台效果好!!
wyanshan 2012-11-28
  • 打赏
  • 举报
回复
多谢,不过我好像想出一个办法啦。首先定义一个fields的变量,比如叫myFields。然后定义Ext.data.Model,在Model里面设置的时候fields:myFields。这样在其他地方操作的时候,如果是动态的fields,修改myFields的值,那么这个Model就会被自动修改啦。
引用 1 楼 yibey 的回复:
在MVC模式中 model表示模型,模型的意思是表示一个对象,每个fields表示对象的每一个属性, 如果你的model是完全无规律的话,那你就得重新考虑设计了, 设计成多个类型的model。如果你的model是一个类型的只是参数不同,那么就找出你的model的最大集合 比如吧你一下子想显示人(model)的信息,一下子想显示植物(model)的信息,那你就得设……
yibey 2012-11-28
  • 打赏
  • 举报
回复
在MVC模式中 model表示模型,模型的意思是表示一个对象,每个fields表示对象的每一个属性, 如果你的model是完全无规律的话,那你就得重新考虑设计了, 设计成多个类型的model。如果你的model是一个类型的只是参数不同,那么就找出你的model的最大集合 比如吧你一下子想显示人(model)的信息,一下子想显示植物(model)的信息,那你就得设计2个model分别对应不同view 再比如你这会想显示男人(model)的信息,那会想显示女人(model)的信息,那么你就把男人和女人的所有的信息的并集设计一个model 叫人。 然后通过view的映射和隐藏显示来控制你想要显示的信息

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧