public static TreeNode BuildChildNode(this TreeView treeView, string id, List <JNodeData> datas) { TreeNode rootNode = new TreeNode(id); JNodeData rootData = datas.FirstOrDefault(row => row.Id == id); if (rootData != null) { rootNode.ToolTipText = rootData.Text; rootNode.Tag = rootData.Tag; } var childrenNodeData = datas.Where(row => row.PId == id); if (childrenNodeData == null || childrenNodeData.Count() == 0) { return(rootNode); } foreach (JNodeData childNodeData in childrenNodeData) { TreeNode childNode = treeView.BuildChildNode(childNodeData.Id, datas); if (childNode != null) { // childNode.ParentNode = rootNode; rootNode.Nodes.Add(childNode); } } return(rootNode); }
public static TreeView BuildTree(this TreeView treeView, string connStr, string sql) { DataTable table = SqlHelper.ExecuteDataTable(connStr, CommandType.Text, sql, null); List <JNodeData> datas = new List <JNodeData>(); foreach (var item in table.Rows.Cast <DataRow>()) { string id = item["ID"].Value <string>(); string pid = item["PID"].Value <string>(); string name = item["Name"].Value <string>(); JNodeData node = new JNodeData(id, pid, name, item); datas.Add(node); } treeView.Nodes.Add(treeView.BuildChildNode("0", datas)); //treeView.Nodes.Add(); return(treeView); }