之前 用easyui的treegrid的时候 需要树状结构数据 那时候去看了一下别人的代码 。发现不能灵活转换任意想用的前端框架 。所以我就自己修改了一下 。
灵活适用 代码如下:
/**
* lSJ
* @param list 集合
* @param idStr 主键ID字符串
* @param pidStr 父ID字符串
* @param chindrenStr 显示节点名称
* @param key 需要新增的key名
* @param value 需要获取的value名
* @returns
*/
function transData(list, idStr, pidStr, chindrenStr , key , value ){
var result = [], hash = {}, id = idStr, pid = pidStr, children = chindrenStr, text = key , name = value, i = 0, j = 0, len = list.length ;
for(; i < len; i++){
hash[list[i][id]] = list[i];
list[i][text] = list[i][name];
delete list[i][name];
delete list[i].state;
}
for(; j < len; j++){
var aVal = list[j], hashVP = hash[aVal[pid]];
if(hashVP){
!hashVP[children] && (hashVP[children] = []);
hashVP[children].push(aVal);
}else{
result.push(aVal);
}
}
return result;
}
easyui 的treegrid 可能只会用到前面四个参数
但是 像 bootstrap 中的treeview想要替换text中的文本 就要用到最后两个参数了
感谢看官 大神勿喷