datagrid数据格式解析-自定义过滤函数loadFilter

来源:互联网 发布:踝关节护具知乎 编辑:程序博客网 时间:2024/06/03 23:47
$('#tTable').datagrid({fit:true,iconCls:'icon-liebiao',width:200,height:450,singleSelect : true,loadMsg : '请稍候......',nowrap: false,striped: true,url:'',sortName: 'id',sortOrder: 'asc',remoteSort: false,idField:'id',pageSize : 20,showFooter:false,columns : [ [ {field : 'base.name',title : '名称',width : 100},{field : 'base.das.base.name',title : '服务器',width : 100},{field : 'base.model.firm.name',title : '厂商',width : 100},{field : 'base.model.name',title : '型号',width : 100} ] ],                 loadFilter:function(data){return loadFilter(data);//自定义过滤方法 }


自定义过滤数据方法:
//datagrid数据格式过滤器function loadFilter(data){var value = {total:data.total,rows:[]};for (var i = 0; i < data.rows.length; i++) {var o = {};_loadArray(data.rows[i],o,"");  value.rows.push(o);    }return value;}function _loadArray(data,o,pre){if(pre)pre = pre+"."; for (var att in data) {       var row = data[att];       if(typeof(row) == "object"){       _loadArray(row,o,pre+att);       }else{    o[pre+att] = row;              }       }}


测试数据如下,最终生成的数据格式:

[img][/img]

取值方法 node["base.name"]以此类推

解决appendRow时无法解析新的行数据的方法:
//改变数据格式var node = {};_loadArray(res.data.data,node,"");$('#tTable').datagrid('appendRow',node);