yahoo71986 发表于 2013-1-29 09:11:22

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属性中,就能够完成相应的设值。
我说的只是大体思路,具体代码具体分析
页: [1]
查看完整版本: Ext中PropertyGrid后台取值问题