在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有时候的树结构更复杂,层数多,可能不止在一个表中查询。如一个项目中的树结构: 层数不固定,最后的树叶层时从不同的表中查询得到。
先利用了上一篇中生成树的方法:表中的结构和上篇中的机构基本相同。
private void CreateTree(TreeNode PNode, int traceCode)
{
string strSql = "select treecode,treename from TraceTree where ptreecode = " + traceCode;
DataTable dt = SqlClass.GetTable(strSql);
if (traceCode == -1)
{
PNode.Text = dt.Rows[0]["treename"].ToString();
PNode.Tag = "R" + dt.Rows[0]["treecode"].ToString();
tvwTest.Nodes.Add(PNode);
CreateTree(PNode, Convert.ToInt32(dt.Rows[0]["treecode"].ToString()));
}
else
{
if (dt.Rows.Count != 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.Text = dt.Rows[i]["treename"].ToString();
node.Tag = "P" + dt.Rows[i]["treecode"].ToString();
///////////////AddPro(node, Convert.ToInt32(dt.Rows[i]["treecode"].ToString())); // 注释添加叶子函数
CreateTree(node, Convert.ToInt32(dt.Rows[i]["treecode"].ToString()));
PNode.Nodes.Add(node);
}
}
}
}
生成树: 和要求得到的树机构差不多了,只是差叶子节点。 添加了 private void AddPro(TreeNode node, int treeCode) // 加载树叶 函数,在添加除了根节点以外的其它节点前,添加这个节点对应的叶子。如上注释代码。
|
请发表评论