问题描述
- extjs form表单绑定数据
-
Ext.define('taskList' { extend: 'Ext.data.Model' fields: [ { name: 'TASK_ID' type: 'string' } { name: 'ITEM' type: 'string' } { name: 'INFO' type: 'string' } { name: 'MARK' type: 'int' } { name: 'EMPID' type: 'string' } { name: 'ACCESSORY' type: 'string' } { name: 'CLAIM_TIME' type: 'string' } ] }); var storeList = Ext.create('Ext.data.Store' { model:'taskList' proxy: { type: 'ajax' url: 'taskList.action?task_id='+task_id reader: { type: 'json' root: 'taskList' } } }); storeList.load(); myFormPanel.getForm().loadRecord(storeList);
这句话有什么问题?为什么文本框就是不显示数据?store里已经有数据了。
Ext.define('taskList' { extend: 'Ext.data.Model' fields: [ { name: 'TASK_ID' type: 'string' } { name: 'ITEM' type: 'string' } { name: 'INFO' type: 'string' } { name: 'MARK' type: 'int' } { name: 'EMPID' type: 'string' } { name: 'ACCESSORY' type: 'string' } { name: 'CLAIM_TIME' type: 'string' } ] }); var userRecord = Ext.create('taskList' { ITEM: 'Qi Fei' INFO: 'youring2@gmail.com' MARK:1 EMPID:'Qi Fei' ACCESSORY:'Qi Fei' CLAIM_TIME:'Qi Fei' }); myFormPanel.getForm().loadRecord(userRecord);
我换成静态的数据就能加载上去
解决方案
loadRecord参数时Ext.data.Model的实力,不是store对象,而且store是异步加载的,数据没返回都已经执行myFormPanel.getForm().loadRecord(userRecord);这句了,
放到store的load事件里面,而且是取里面的记录
var storeList = Ext.create('Ext.data.Store' { load:function(){ alert(storeList.getCount())//输出有多少条数据 myFormPanel.getForm().loadRecord(storeList.getAt((0));//加载第一条数据 } model:'taskList' proxy: { type: 'ajax' url: 'taskList.action?task_id='+task_id reader: { type: 'json' root: 'taskList' } } });
http://ask.csdn.net/questions/173921,这个里面不是说得很清楚了。。加载远程数据用load就行。。不需要建立个store来加载。
解决能记得采纳。。
解决方案二:
storeList.on(""load"" function() { myFormPanel.getForm().loadRecord(storeList.getAt(0)); });
确实Form加载完成时没用上store里的数据。把它放在Load里就行了
时间: 2024-08-05 06:40:40