初学ext遇到一个问题:如图为后台的方法,
传递一个json格式的字符串,如:
{"root":[{"sprotid":0,"stayadd1":"水水水水水水水","stayadd2":"","trainadd1":"啊啊啊啊啊啊啊啊","trainadd2":"","traindate1":"","traindate2":""}]}
/*trainadd1 对应下午的‘训练地点’ stayadd1 对应下文的‘住宿地点’*/
客户端接收字符串的代码如下:
var cgxl_ds = new Ext.data.Store({ id : "cgxl_id", proxy : { type : 'ajax', url : 'readCgxlAction.url', }, reader : new Ext.data.JsonReader( {root:'root'}, [ {name :'sprotid'}, {name :'stayadd1'}, {name :'stayadd2'}, {name :'trainadd1'}, {name :'trainadd2'}, {name :'traindate1'}, {name :'traindate2'} ]) }); cgxl_ds.load({ params : { active : "cgxl" } });
所得的数据要填充在客户端的表格中:
(红色方块内,我设置为“可读不可写”)
代码片段为
title : "常规训练", layout : "form", items : [ { xtype : 'fieldset', title : '常规训练、住宿地点1及训练安排', name : 'trainpanel1', width : 599, height : 140, items : [ { xtype : 'displayfield', id : 'trainaddr1', name : 'trainaddr1', width : 480, fieldLabel : '训练地点1', blankText : '请输入训练地点' }, { xtype : 'displayfield', id : 'stayaddr1', name : 'stayaddr1', width : 480, fieldLabel : '住宿地点1', blankText : '请输入住宿地点' }, time_grid1 ]
我的问题是:
怎么把所得的数据填充上去??
在store中加入load事件,在这个事件中把数据填充上去。
var cgxl_ds = new Ext.data.Store({
...
listeners:{
load:function(store, records, options){
Ext.getCmp('trainaddr1').setValue(records[0].get('sprotid'))
}
}
});