日期:2014-05-18  浏览次数:20514 次

求个用递归算法用Treeview动态生成目录的代码
有两个表
一个是目录表:
编号
名称
一个是分类表:
编号
名称
匹配目录编号
我现在想达到的效果就是希望通过递归的算法来匹配分类所对应的目录(用Treeview也行),并最后以目录的形式完整输出

------解决方案--------------------
这很简单,用不上递归。现把目录表读出来建立一级节点(把ID值赋给value),再根据一级节点的value值建立分类表的节点。
------解决方案--------------------
表结构
Class_ID 子编号
Class_Name 名称
Class_Pid 父编号
Class_ID Class_Name Class_Pid //0为一级目录
1 一级 0
2 二级 0
3 三级 0
4 一级1 1
5 一级2 1
6 一级3 1
7 三级3 3
8 三级3 3
9 三级3 3
//*******
private void Tree_Infor(int ParentID, TreeNodeCollection pNode)//treeview树型目录
{
DataRow[] rows = Dset.Tables[0].Select( "Class_Pid= ' " + ParentID + " ' ");
foreach (DataRow row in rows)
{
TreeNode Node = new TreeNode();
Node.Text = row[ "Class_Name "].ToString();
Node.Value = row[ "Class_ID "].ToString();
pNode.Add(Node);
Node.Expand();
Tree_Infor(Convert.ToInt32(row[0]), Node.ChildNodes);
}
}
void Bind_TreeView()
{
Dset = Database.AccessOparetion.GetDataSet( "select Class_ID,Class_Name,Class_Pid from TC_Class order by Class_ID ");
TreeNodeCollection Node = new TreeNodeCollection();
TreeNode TN = new TreeNode();
TN.Text = "根目录 ";
TN.Value = "0 ";
Node = this.TreeView1.Nodes;
Node.Add(TN);
Tree_Infor(0, TN.ChildNodes);

}

提供参考
------解决方案--------------------
具体如何实现? 能详细说说吗?最好有段源代码,呵呵
——————————————————————————————————
我用微软的treeview控件可以说是用到极致了,你可以参观我的网址:http://www.addtoo.net/Visitor/View.aspx
对于treeview控件的学习我都是从这里得到的,希望也能帮助你:
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/navigation/treeview.aspx
------解决方案--------------------
一个表够了,递归就是要给个开始,给个结束标记
------解决方案--------------------
TreeNodeCollection treenode的集合
开始标记为0结束标记就不用了!!!一个要看的实现什么功能,一般情况下是不需要结束标记的