|
|
|
|
Автор:
|
Алексей Уткин
|
|
Тема:
|
Re[3]: Insert TreeNode......
|
|
Дата:
|
7/10/2001 11:56:00 AM
|
попробуй так... модифицируй под свои начальные данные - я имею ввиду корневую ноду
здесь функция BTree вернет тебе TreeNode (дерево относительно заданной корневой (старшего предка) ноды) по которой ты можешь навигировать в любую сторону без проблем
private void InitializeTreeView(){
DataTable dt = new DataTable("MainTable");
DataColumn dc = new DataColumn("ID");
dt.Columns.Add(dc);
dc = new DataColumn("ParentID");
dt.Columns.Add(dc);
dc = new DataColumn("Name");
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr["ID"]="1.1";
dr["ParentID"]="2.1";
dr["Name"]="node 1.1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"]="2.1";
dr["ParentID"]="3";
dr["Name"]="node 2.1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"]="2.2";
dr["ParentID"]="3";
dr["Name"]="node 2.2";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"]="3";
dr["ParentID"]="4";
dr["Name"]="node 3";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"]="1.2";
dr["ParentID"]="2.1";
dr["Name"]="node 1.2";
dt.Rows.Add(dr);
TreeNode tn = BTree(dt,"4");
tv.Nodes.Add(tn);
}
private TreeNode BTree(DataTable treeTable, String strParent) {
TreeNode treeNode = new TreeNode(strParent);
foreach(DataRow treeRow in treeTable.Rows) {
if(treeRow[treeTable.Columns["ParentID"]].ToString()==strParent) {
TreeNode childNode = BTree(treeTable, treeRow[treeTable.Columns["ID"]].ToString());
childNode.Text=treeRow[treeTable.Columns["Name"]].ToString();
treeNode.Nodes.Add(childNode);
}
}
return treeNode;
}
|
|
|
|