社区
C#
帖子详情
怎样把数据库中的内容显示在treeview 中?
lingyunfeipu
2003-08-12 02:31:59
我有表 aa
字段:
id(部门代码) bmmc (名称) bmjb(部门级别) parentid(父级)
1 a 1 0
2 b 1 0
3 aa 2 1
4 aaa 3 3
5 aaaa 4 4
我要实现
A
AA
AAA
AAAA
B
并且层可以N层
怎样用递归编程?
我的信箱:lingyunfeipu@yahoo.com.cn
可否给一个例子
...全文
97
6
打赏
收藏
怎样把数据库中的内容显示在treeview 中?
我有表 aa 字段: id(部门代码) bmmc (名称) bmjb(部门级别) parentid(父级) 1 a 1 0 2 b 1 0 3 aa 2 1 4 aaa 3 3 5 aaaa 4 4 我要实现 A AA AAA AAAA B 并且层可以N层 怎样用递归编程? 我的信箱:lingyunfeipu@yahoo.com.cn 可否给一个例子
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
map1827
2003-09-09
打赏
举报
回复
up
雪狼1234567
2003-08-12
打赏
举报
回复
public void CreateNodesOfParent(string iParent,TreeNode pNode)
{
DataView dvwData = new DataView(this.dt.Tables[0]);
if (iParent == null)
{
dvwData.RowFilter = "[ParentID] is null";
}
else
{
dvwData.RowFilter = "[ParentID] = " +"'"+ iParent+"'";
}
foreach(DataRowView Row in dvwData)
{
// Call Stack !
if(pNode == null)
{
TreeNode zNode = this.treeView1.Nodes.Add(Row["DeptName"].ToString());
zNode.Tag = Row["DeptID"].ToString();
CreateNodesOfParent((Row["DeptID"].ToString()),zNode);
}
else
{
TreeNode zNode = pNode.Nodes.Add(Row["DeptName"].ToString());
zNode.Tag = Row["DeptID"].ToString();
CreateNodesOfParent((Row["DeptID"].ToString()),zNode);
}
}
}
public void IniTree()
{
this.treeView1.BeginUpdate();
CreateNodesOfParent(null,0);
this.treeView1.ExpandAll();
this.treeView1.EndUpdate();
}
dahuzizyd
2003-08-12
打赏
举报
回复
其实是一样的,呵呵。
xiangzionest
2003-08-12
打赏
举报
回复
我有一个例子,不过我的例子中有一个总的root,然后实现递归调用。可以吗?
private void CreateTreeNode(TreeNodeCollection newNodes,int parentID,DataSet ds)
{
try
{
DataView dv=new DataView();
dv.Table =ds.Tables["OrgInfo"];
dv.RowFilter="UpOrgID="+parentID.ToString();
foreach(DataRowView drv in dv)//循环遍历子组织,合并到记录中
{
TreeNode tmpNd=new TreeNode();
int id=Convert.ToInt32(drv["OrgID"]);
tmpNd.ID=id.ToString();
tmpNd.Text=drv["OrgName"].ToString();
newNodes.Add(tmpNd);
CreateTreeNode(newNodes[newNodes.Count-1].Nodes,id,ds);//递归调用创建子组织
}
}
catch{}
}
我没有用部门级别字段,OrgID为组织ID,UpOrgID为父组织ID调用时CreateTreeNode(Treeview1.Nodes,UpOrgID,dsOrg);
dahuzizyd
2003-08-12
打赏
举报
回复
建树:
public void InitTree(TreeNodeCollection Nds,string parentId,DataTable dt)
{
dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=dt;
dv.RowFilter="ParentId=" + parentId ;
foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
tmpNd.Tag =drv[0].ToString();
tmpNd.Text=drv[2].ToString();
Nds.Add(tmpNd);
intId=drv[1].ToString();
InitTree(tmpNd.Nodes,tmpNd.Tag.ToString(),ds,TableName);
}
}
遍历树:
public void GetAllNodeText(TreeNodeCollection tnc,string txt)
{
foreach (TreeNode node in tnc)
{
if( node.Nodes.Count != 0 )
GetAllNodeText(node.Nodes,txt);
}
}
调用:
myTree.InitTree(TreeView1.Nodes,"0",dataTable);
注意这个:dv.RowFilter="ParentId=" + parentId ;ParentId就是父节点的ID,这里是字段名,最后要和你的对应上。
我的表结构:
id ParentID name
顾君彦
2003-08-12
打赏
举报
回复
无需使用递归,使用简单的算法即可解决.
使用一个hash表,记录tree节点即可.
选创建每个节点,
再进行遍例节点,在hash表中查找父节点.父子关系处理完后,把首节点加到treeview上即可.
效率会比递归高.
将
数据库
数据
显示
到
TreeVIEW
中
。
在设计程序时,经常使用
TreeView
控件树状
显示
数据。例如在WINDOWS资源管理器
中
,利用
TreeView
控件
显示
层次。
TreeView
控件
显示
数据的好处是层次清晰,本实例利用
TreeView
控件
显示
商品信息。
数据库
中
的数据
显示
在
TreeView
中
将
数据库
中
的具有一定规律的数据分层
显示
在
TreeView
的各个节点上。
c# 根据
数据库
动态生成三层
treeview
导航
数据库
动态生成三层
treeview
导航(包括利用imagelist添加图标)
如何在
treeview
里面
显示
数据库
字段.rar_
treeview
_
treeview
数据库
_算法 CSharp
这里讲的是如何动态的把
数据库
的字段绑定到
treeview
中
去。它利用了一个递归的算法来实现
treeview
动态添加节点
内容
立刻保存至
数据库
treeview
控件 与
数据库
连接 添加 修改 删除节点 可以动态保存到
数据库
,下次打开程序可以
显示
上次修改后的结果
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章