您的位置:首页 > 编程语言 > Java开发

java实现树型结构方法一

2011-09-14 23:29 375 查看
//初始化树形目录。

//</summary>

protected void initTreeView()

{

//SQL语句:选择部门树的第一级节点。

string sqlDepartment="Select CateId,CateName,CateInxId,ParentCateId From TCategory Where CateInxId='dpt'";

//创建部门类的实例

Department myDepartment = new Department(sqlDepartment,myDepartName);

//清空数据集

myDepartDataSet.Clear();

//取得部门类的数据集

myDepartDataSet=myDepartment.getDepart();

//添加部门树的第一级节点,节点从部门类的数据集返回

//myDepartDataSet.Tables[myDepartName].Rows.Count为第一级节点的个数,i为节点的Index

for(int i=0;i<myDepartDataSet.Tables[myDepartName].Rows.Count;i++)

{

//创建节点记录第一级部门信息

TreeNode aNode=new TreeNode(myDepartDataSet.Tables[myDepartName].Rows[i].ItemArray[1].ToString(),0,0);

//添加节点

myTreeView.Nodes.Add(aNode);

//设置节点的Tag标签值

myTreeView.Nodes[i].Tag=myDepartDataSet.Tables[myDepartName].Rows[i].ItemArray[0];

}

//添加部门树的各非根节点

//myDepartDataSet.Tables[myDepartName].Rows.Count为子节点的个数,i为节点的Index

for(int i=0;i<myDepartDataSet.Tables[myDepartName].Rows.Count;i++)

{

//递归调用ExpandNode,扩展生成树形目录

ExpandNode(myTreeView.Nodes[i]);

}

}

/// <summary>

/// 扩展生成树形目录。

/// aNode为要扩展的节点。

/// </summary>

protected void ExpandNode(TreeNode aNode)

{

//SQL语句:选择部门树的非根节点。

string sqlDepartment="Select CateId,CateName,CateInxId,ParentCateId From TCategory Where ParentCateId='"+aNode.Tag+"'";

//创建部门类的实例

Department myDepartment = new Department(sqlDepartment,myDepartName);

//清空数据集

myDepartDataSet.Clear();

//取得部门类的数据集

myDepartDataSet=myDepartment.getDepart();

//添加部门树的非根节点,节点从部门类的数据集返回

//myDepartDataSet.Tables[myDepartName].Rows.Count为节点的个数,i为节点的Index

for(int i=0;i<myDepartDataSet.Tables[myDepartName].Rows.Count;i++)

{

//创建节点记录部门信息

TreeNode bNode=new TreeNode(myDepartDataSet.Tables[myDepartName].Rows[i].ItemArray[1].ToString(),1,2);

//添加节点

aNode.Nodes.Add(bNode);

//设置节点的Tag标签值

aNode.Nodes[i].Tag=myDepartDataSet.Tables[myDepartName].Rows[i].ItemArray[0];

}

//添加部门树的各非根节点

//myDepartDataSet.Tables[myDepartName].Rows.Count为子节点的个数,i为节点的Index

for(int i=0;i<myDepartDataSet.Tables[myDepartName].Rows.Count;i++)

{

//递归调用ExpandNode,扩展生成树形目录

ExpandNode(aNode.Nodes[i]);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: