首页 新闻 会员 周边

关于Extjs,后台传递json格式数据的加载问题

0
悬赏园豆:80 [已解决问题] 解决于 2015-03-03 13:27

初学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 ]

我的问题是:

怎么把所得的数据填充上去??

以诗答诗的主页 以诗答诗 | 初学一级 | 园豆:125
提问于:2015-03-01 16:49
< >
分享
最佳答案
0

在store中加入load事件,在这个事件中把数据填充上去。

var cgxl_ds = new Ext.data.Store({

    ...

    listeners:{

      load:function(store, records, options){

         Ext.getCmp('trainaddr1').setValue(records[0].get('sprotid'))

      }

   }

});

收获园豆:80
没事就晕 | 菜鸟二级 |园豆:282 | 2015-03-03 11:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册