小菜扣了一晚上头, TreeView 添加的节点,为什么都在一个 根下面?
代码附上:
public void LoadtreelistDate()
{
DataTable sysdt = SystemTreeTool.GetNodeInfo(); //从数据库获取的数据
TreeNode treeNode = new TreeNode("主根");
AddTree("0", treeNode, sysdt);
treeViewSystemList.Nodes.Add(treeNode);
}
public void AddTree(String ParentID, TreeNode pNode, DataTable table)
{
DataView dvTree = new DataView(table); //dtTree = dsFrame.Tables[0];
string Fstr = "ParentNodeID='" + ParentID + "'";
dvTree.RowFilter = Fstr;
// treeView1.ImageList = this.imageList1;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null) //处理主节点
{
Node.Name = Row["NodeID"].ToString();
Node.Text = Row["NodeText"].ToString();
treeViewSystemList.Nodes.Add(Node);
AddTree(Row["NodeID"].ToString(), Node, table); //递归调用
}
else //处理子节点
{
Node.Name = Row["NodeID"].ToString();
Node.Text = Row["NodeText"].ToString();
pNode.Nodes.Add(Node);
AddTree(Row["NodeID"].ToString(), Node, table); //递归调用
}
}
}
那你为什么要搞个主根,你现在的逻辑就是所有节点都在主根下面啊
你想让新节点是根节点,那要直接添加到treeview下面而不是主根下面
那么你的方法就不能只有一个addtree,要区分一下到底是要添加根节点还是添加子节点