using system;using system.collections;
using system.collections.generic;
using system.linq;
using system.linq.expressions;
using system.reflection;
namespace xhp
public string text
/// /// closed
///
public string state
public listchildren
}/// ///
///
///
///
///
///
///
///
///
/// 樹預設展開級別-1全不展開,0展開所有,1只展開到1級
///
public static listgettreedatafromlist(listlist, expression> idfieldexp,
expression> textfieldexp, expression> pidfieldexp, string rootvalue, string emptyrootname="==全部==",int expendlevel=1)
treemodelbase rlt = new treemodelbase();
if (parent == null)
else
rlt.state = expendlevel > -1 ? null : "closed";
var currentlevel = 1;
gettreedatafromlist_setchild(rlt, list, idprop, textprop, pidprop, expendlevel, currentlevel);
return new list ;
}private static void gettreedatafromlist_setchild(treemodelbase parent,listlist,propertyinfo idprop,propertyinfo textprop, propertyinfo pidprop, int expendlevel,int currentlevel)
else
currentlevel++;
gettreedatafromlist_setchild(tempchild, list, idprop, textprop, pidprop, expendlevel, currentlevel);
parent.children.add(tempchild);}}
}}
}
今天在用到easyui 的tree,treegrid,每次轉出這個資料格式非常不爽,就自己寫了段helper
輸出到前端:
jsonconvert.serializeobject(treedatahelper.gettreedatafromlist(tlist, x1 => x1.id, x1 => x1.name, x1 => x1.parentid, "root", "==所有分類==", 0),
new jsonserializersettings );
的tree用法 linux命令tree用法
tree命令用於以樹狀圖形方式列出目錄結構 指定目錄下的所有檔案 所有目錄 該命令預設未安裝,安裝命令 yum y install tree 語法 tree 選項 引數 常用選項 a all files are listed.顯示所有檔案和目錄 d list directories only.顯示目...
mac通過tree原始碼編譯安裝tree
通過tree原始碼編譯安裝 解壓原始碼 tar xzvf tree 1.6.0.tgz 修改makefile檔案 tree預設的是linux的編譯環境,因此移植到mac裡面需要注釋掉linux的編譯選項,換成mac的編譯選項 直接vim makefile這個檔案 linux defaults cfl...
tree狀資料葉子節點與根節點等的遞迴轉換
做專案時經常遇到樹狀層級資料。從各個層級資料的轉換查詢等。場景如行業類別的多層級,行政區層級,檢查項類別層級等等。資料結構如 id name parentid region area樹狀節點的轉化 public listconverttoleafchildareas listareaids retu...