/**/
/// <summary>
/// 添加到节点
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public List < TreeNode > GetTreeNode(DataTable dt)
... {
int count = dt.Rows.Count;
int[] ownerID = new int[count];
int[] fatherID = new int[count];
TreeNode[] treeNodes = new TreeNode[count];
_dicTree = new Dictionary<int, TreeNode>(count);
int index = 0;
foreach (DataRow dr in dt.Rows)
...{
ownerID[index] = (int)dr["CallCardsSortID"];
fatherID[index] = (int)dr["fatherID"];
treeNodes[index] = new TreeNode(dr["CallCardsSortName"].ToString());
treeNodes[index].Tag = dr;// ownerID[index];
treeNodes[index].ImageIndex = 0;
treeNodes[index].SelectedImageIndex = 1;
_dicTree.Add(ownerID[index], treeNodes[index]);
index++;
}
List<TreeNode> father = new List<TreeNode>();
for (int i = 0; i < count; i++)
...{
int fID = fatherID[i];
if (_dicTree.ContainsKey(fID) && fID != ownerID[i])
...{
_dicTree[fID].Nodes.Add(_dicTree[ownerID[i]]);
}
else
...{
father.Add(_dicTree[ownerID[i]]);
}
}
return father;
}
/// 添加到节点
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public List < TreeNode > GetTreeNode(DataTable dt)
... {
int count = dt.Rows.Count;
int[] ownerID = new int[count];
int[] fatherID = new int[count];
TreeNode[] treeNodes = new TreeNode[count];
_dicTree = new Dictionary<int, TreeNode>(count);
int index = 0;
foreach (DataRow dr in dt.Rows)
...{
ownerID[index] = (int)dr["CallCardsSortID"];
fatherID[index] = (int)dr["fatherID"];
treeNodes[index] = new TreeNode(dr["CallCardsSortName"].ToString());
treeNodes[index].Tag = dr;// ownerID[index];
treeNodes[index].ImageIndex = 0;
treeNodes[index].SelectedImageIndex = 1;
_dicTree.Add(ownerID[index], treeNodes[index]);
index++;
}
List<TreeNode> father = new List<TreeNode>();
for (int i = 0; i < count; i++)
...{
int fID = fatherID[i];
if (_dicTree.ContainsKey(fID) && fID != ownerID[i])
...{
_dicTree[fID].Nodes.Add(_dicTree[ownerID[i]]);
}
else
...{
father.Add(_dicTree[ownerID[i]]);
}
}
return father;
}
示例二:
private
void
button1_Click(
object
sender, EventArgs e)
... {
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[]...{
new DataColumn("ID",Type.GetType("System.Int32")),
new DataColumn("fatherID",Type.GetType("System.Int32")),
new DataColumn("Name",Type.GetType("System.String"))
});
for (int i = 0; i < 10; i++)
...{
DataRow dr = dt.NewRow();
dr["ID"] = i+1;
dr["fatherID"] = i*2;
dr["Name"] = "朋友"+i.ToString();
dt.Rows.Add(dr);
}
List<TreeNode> tns = Press.UnlimitedTree.GetTree(dt);
this.treeView1.Nodes.AddRange(tns.ToArray());
}
... {
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[]...{
new DataColumn("ID",Type.GetType("System.Int32")),
new DataColumn("fatherID",Type.GetType("System.Int32")),
new DataColumn("Name",Type.GetType("System.String"))
});
for (int i = 0; i < 10; i++)
...{
DataRow dr = dt.NewRow();
dr["ID"] = i+1;
dr["fatherID"] = i*2;
dr["Name"] = "朋友"+i.ToString();
dt.Rows.Add(dr);
}
List<TreeNode> tns = Press.UnlimitedTree.GetTree(dt);
this.treeView1.Nodes.AddRange(tns.ToArray());
}