ExtJs中根据后台数据动态创建表格列及其数据

  1. renderDynamicTable: function(dataset,type, tab) {  
  2.      var resultSetId = type === 'control' ? '#controlResultSet' : '#testResultSet';  
  3.      var ctlSet = dataset;  
  4.      if(Ext.isArray(ctlSet) && ctlSet.length > 0){  
  5.          var ctlData = [];  
  6.          var fields = [];  
  7. //根据数据集动态创建store fields及行数据  
  8.          ctlSet.forEach(function(row,index){  
  9.              var rowData = {};  
  10.              if(row && row.length > 0){  
  11.                  if(fields.length === 0){  
  12.                      for(var i=0;i<row.length;i++){  
  13.                          fields.push('col' + i);  
  14.                      }  
  15.                  }  
  16.                  row.forEach(function(value,index){  
  17.                      rowData[fields[index]] = value;  
  18.                  });  
  19.                  ctlData.push(rowData);  
  20.              }  
  21.          });  
  22.          var columns = [];  
  23. //根据数据集动态创建列  
  24.          fields.forEach(function(name,index){  
  25.              columns.push({  
  26.                  text: name,  
  27.                  dataIndex: name,  
  28.                  renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {  
  29.                      if(!Ext.isEmpty(value)){  
  30.                          metaData.tdAttr = 'data-qtip="' + value + '"';  
  31.                      }  
  32.                      return value;  
  33.                  }});  
  34.          });  
  35. //创建内存store,绑定数据及fields  
  36.          Ext.create('Ext.data.Store', {  
  37.              storeId:'ctlStore',  
  38.              fields:fields,  
  39.              data: ctlData,  
  40.              proxy: {  
  41.                  type: 'memory',  
  42.                  reader: {  
  43.                      type: 'json'  
  44.                  }  
  45.              }  
  46.          });  
  47. //给表格重写配置store和列  
  48.          tab.down(resultSetId).reconfigure(Ext.data.StoreManager.lookup('ctlStore'),columns);  
  49.      }  
  50.  }  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值