+ -
当前位置:首页 → 问答吧 → 如何Ext.Ajax.request从后台去数据加载到formpanel中的表单控件上。

如何Ext.Ajax.request从后台去数据加载到formpanel中的表单控件上。

时间:2011-09-07

来源:互联网

请看下列代码,我想为其formpanel中的表单加载数据,我才用ext.ajax.request从后台读取数据,数据读到了,我却不知道怎么样为表单赋值。有哪位高手能够帮帮忙呀!在线等候呀!
Ext.define('S3.Console.Envirrecord', {
  constructor: function (dept_id, dept_desc, sensor_id, sensor_desc) {
  var refrigerator_type = "";
  var Model = "";
  var refrigerator_brand = "";
  var Energy_dissipation = "";
  var Volume = "";
  var refrigerator_life = "";
  var repairnum = "";
  var marks = "";

  Ext.Ajax.request({
  url: 'core/WebService.asmx/LoadEnvirrecord',
  method: 'POST',
  jsonData: { dept_id: dept_id, sensor_id: sensor_id },
  success: function (response) {
  var data = Ext.JSON.decode(response.responseText).d;
  var store = new Ext.data.Store({
  model: 'envirrecordmodel',
  proxy: {
  type: 'memory',
  reader: {
  type: 'json'
  }
  }
  });
  //store.load(data);
  Model = store.Model;
  }


  });
  var Panel = new Ext.form.FormPanel({
  defaults: {
  xtype: 'textfield',
  allowBlank: false
  },
  items: [{
  name: 'sensor_desc',
  fieldLabel: '探头名称',
  value: sensor_desc

  }, {
  name: 'dept_desc',
  fieldLabel: '部门名称',
  value: dept_desc

  }, {
  name: 'refrigerator_type',
  fieldLabel: '冰箱类型',
  value: refrigerator_type
  }, {
  name: 'Model',
  fieldLabel: '型号',
  value: Model


  }, {
  name: 'refrigerator_brand',
  fieldLabel: '冰箱名称',
  value: refrigerator_brand
  }, {
  name: 'Energy_dissipation',
  fieldLabel: '耗能',
  value: Energy_dissipation
  }, {

  name: 'Volume',
  fieldLabel: '容积',
  value: Volume
  }, {
  name: 'refrigerator_life',
  fieldLabel: '使用年限',
  value: refrigerator_life
  }, {

  name: 'repairnum',
  fieldLabel: '维修次数',
  value: repairnum
  }, {

  name: 'marks',
  fieldLabel: '备注',
  value: marks
  }
  ]
  });

  var win = Ext.create('Ext.Window', {
  title: '仓储环境' + ' 部门:' + dept_desc + '(' + dept_id + ') 探头:' + sensor_desc + '(' + sensor_id + ')',
  layout: 'fit',
  modal: true,
  width: 500,
  height: 400,
  autoScroll: false,
  items: Panel
  });
  win.show();

  }
});

作者: guo779820919   发布时间: 2011-09-07

顶啊!哪位高手帮我看看吧!

作者: guo779820919   发布时间: 2011-09-07

后台读到了数据 到前台也转化成了json
根据json取值 将相应的值赋值到相应的组件中就行啊
Ext.getCmp('组件id').setValue('值')

作者: fanchuanzhidu   发布时间: 2011-09-07

引用 2 楼 fanchuanzhidu 的回复:
后台读到了数据 到前台也转化成了json
根据json取值 将相应的值赋值到相应的组件中就行啊
Ext.getCmp('组件id').setValue('值')

是否能够具体一点呀!我刚学的,不太懂!

作者: guo779820919   发布时间: 2011-09-07

实际上你的代码应该这样来写
JScript code
Ext.define('S3.Console.Envirrecord', {
    constructor : function(dept_id, dept_desc, sensor_id, sensor_desc)
    {
        var refrigerator_type = "";
        var Model = "";
        var refrigerator_brand = "";
        var Energy_dissipation = "";
        var Volume = "";
        var refrigerator_life = "";
        var repairnum = "";
        var marks = "";
        /*begin:这里定义组件*/
        var Panel = new Ext.form.FormPanel({
            defaults : {
                xtype : 'textfield',
                allowBlank : false
            },
            items : [{
                name : 'sensor_desc',
                fieldLabel : '探头名称',
                value : sensor_desc

            }, {
                name : 'dept_desc',
                fieldLabel : '部门名称',
                value : dept_desc

            }, {
                name : 'refrigerator_type',
                fieldLabel : '冰箱类型',
                value : refrigerator_type
            }, {
                name : 'Model',
                fieldLabel : '型号',
                value : Model

            }, {
                name : 'refrigerator_brand',
                fieldLabel : '冰箱名称',
                value : refrigerator_brand
            }, {
                name : 'Energy_dissipation',
                fieldLabel : '耗能',
                value : Energy_dissipation
            }, {

                name : 'Volume',
                fieldLabel : '容积',
                value : Volume
            }, {
                name : 'refrigerator_life',
                fieldLabel : '使用年限',
                value : refrigerator_life
            }, {

                name : 'repairnum',
                fieldLabel : '维修次数',
                value : repairnum
            }, {

                name : 'marks',
                fieldLabel : '备注',
                value : marks
            }]
        });

        var win = Ext.create('Ext.Window', {
            title : '仓储环境' + ' 部门:' + dept_desc + '(' + dept_id + ') 探头:'
                    + sensor_desc + '(' + sensor_id + ')',
            layout : 'fit',
            modal : true,
            width : 500,
            height : 400,
            autoScroll : false,
            items : Panel
        });
        win.show();
        /*end:这里定义组件*/
        Ext.Ajax.request({
            url : 'core/WebService.asmx/LoadEnvirrecord',
            method : 'POST',
            jsonData : {
                dept_id : dept_id,
                sensor_id : sensor_id
            },
            success : function(response)
            {
                var data = Ext.JSON.decode(response.responseText).d;
                var store = new Ext.data.Store({
                    model : 'envirrecordmodel',
                    proxy : {
                        type : 'memory',
                        reader : {
                            type : 'json'
                        }
                    }
                });
                // store.load(data);
                Model = store.Model;
                // ***************************************/
                // 这里给上边的组件赋值
            }

        });

    }
});

作者: fanchuanzhidu   发布时间: 2011-09-07

引用 2 楼 fanchuanzhidu 的回复:
后台读到了数据 到前台也转化成了json
根据json取值 将相应的值赋值到相应的组件中就行啊
Ext.getCmp('组件id').setValue('值')



还有就是出了Ext.Ajax.request({})从后台获取的数据不久无效了吗,那刚才的Ext.getCmp('组件id').setValue('值')

要放在哪儿呢?

作者: guo779820919   发布时间: 2011-09-07

假如你后台传回来的是"{name:'我是名称','marks':'我是备注'}"
JScript code
success : function(response)
            {
                var data = Ext.JSON.decode(response.responseText).d;
                var json = Ext.JSON.decode(response.responseText);//这样就把后台的字符串在前台转成了json格式 {name:'我是名称','marks':'我是备注'}
                var store = new Ext.data.Store({
                    model : 'envirrecordmodel',
                    proxy : {
                        type : 'memory',
                        reader : {
                            type : 'json'
                        }
                    }
                });
                // store.load(data);
                Model = store.Model;
                // ***************************************/
                // 这里给上边的组件赋值 要给每一个组件加上id
                  Ext.getCmp('备注组件的id').setValue(json.marks);//给备注组件赋值
                   //.....下边的组件道理和这个备注组件的一样
            }

作者: fanchuanzhidu   发布时间: 2011-09-07

引用 4 楼 fanchuanzhidu 的回复:
实际上你的代码应该这样来写

JScript code

Ext.define('S3.Console.Envirrecord', {
constructor : function(dept_id, dept_desc, sensor_id, sensor_desc)
{
var refrigerator_type = "";
var……

这样还是没有数据显示的。

作者: guo779820919   发布时间: 2011-09-07

引用 6 楼 fanchuanzhidu 的回复:
假如你后台传回来的是"{name:'我是名称','marks':'我是备注'}"

JScript code

success : function(response)
{
var data = Ext.JSON.decode(response.responseText).d;
var json ……



我按照你的每一步走,为何还是没有数据显示呢,也不出现错误,就是没有数据显示。

作者: guo779820919   发布时间: 2011-09-07

热门下载

更多