之前 用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中的文本 就要用到最後兩個參數了
感謝看官 大神勿噴