当前位置: 代码迷 >> Web前端 >> Ext中PropertyGrid后台取值有关问题
  详细解决方案

Ext中PropertyGrid后台取值有关问题

热度:86   发布时间:2012-10-08 19:54:56.0
Ext中PropertyGrid后台取值问题
Ext中用PropertyGrid来完成显示系统信息,比如版本,硬件信息等功能再好不过,但是关于PropertyGrid控件给的例子有很多都是写死在前端代码里的,比如
    var grid = new Ext.grid.PropertyGrid({
        title: '属性表格',
        autoHeight: true,
        width: 300,
        renderTo: 'grid',
        viewConfig: {
            forceFit: true
        },
        source: {
            "名字": "不告诉你",
            "创建时间": new Date(Date.parse('12/15/2007')),
            "是否有效": false,
            "版本号": .01,
            "描述": "嗯,估计没啥可说的"
        }
    });


但是很多时候,我想从服务器端取出一些硬件信息,或者软件信息。这种写法就完全不能满足我的需要。那要怎么样去完成这个功能呢?
首先,在PropertyGrid用来显示数据的属性为source,这个suorce接收的为一个javascript对象,也就是说,我可以往这里面传一个javascript对象就完全可以显示出来。说到这里,我想大家都明白了,从服务器端发个json对象过来,填充到里面。服务器端各种生成json对象的方法,我这里省略。
          Ext.Ajax.request({
        	 url:'systemInfo!list.action',
        	 success:function(response){
        		 var result = Ext.decode(response.responseText);
        		 if(result.success){
        			 var json = result.data;
        			 Ext.getCmp("propGrid").setSource(json);
        		 }else {
        			 alert('fail!');
        		 }
        	 },
        	 failure:function(){
        		 alert("networkfailure");
        	 }
          });
          
          var propsGrid = new Ext.grid.PropertyGrid({
        	  id: 'propGrid',
              width: 462,
              autoHeight: true
          });

上边的例子里面我简单起见,用的是Ext里面Ajax控件,当然,你也可以用record,store,reader。从后台得到json解析成为javascript对象,利用PropertGrid的setSource方法设置到source属性中,就能够完成相应的设值。
我说的只是大体思路,具体代码具体分析