数据库中的数据递归绑定到treeview遇到的问题

问题描述

PKIdParentIdDescrpitionIsLeaf11BooksFalse8301AnthropologyTrue8311ArtTrue8321BiographyTrue8331BusinessTrue8341ComputersTrue8351CookbooksTrue8361EssaysTrue这个表是原始表就1根,其他是叶子节点。根是指向自己的,用以bool标示是否还有叶子节点PKIdParentIdDescrpitionIsLeaf11BooksFalse8301AnthropologyTrue8311ArtFalse900831ChinaArtTrue9001831ForginArtTrue8321BiographyTrue8331BusinessTrue8341ComputersTrue8351CookbooksTrue8361EssaysTrue第二个表是该了下结构,将Art类别,也设置成一个根,下边添了两个子节点第一个表的递归写出来了。datasetds;if(!IsPostBack){Bind();//已经将数据库数据绑定到了datasetds;BindToTree(1,(TreeNode)null,false);//调用}privatevoidBindToTree(intParentID,TreeNodepNode,boolIsLeaf){TreeNodetn1=newTreeNode();DataViewdvTree=newDataView(ds.Tables[0]);//过滤ParentIDdvTree.RowFilter=string.Format("[ISLEAF]={0}and[PARENTID]={1}",IsLeaf,ParentID);foreach(DataRowViewRowindvTree){if(pNode==null){tn1.Text=Row["Description"].ToString();tn1.Value=Row["PKId"].ToString();tn1.NavigateUrl="#";TreeView1.Nodes.Add(tn1);tn1.Expanded=true;BindToTree(Int32.Parse(Row["PKId"].ToString()),tn1,true);}else{TreeNodetn2=newTreeNode();tn2.Text=Row["Description"].ToString();tn2.Value=Row["PKId"].ToString();tn2.NavigateUrl="#";pNode.ChildNodes.Add(tn2);tn2.Expanded=true;BindToTree(Int32.Parse(Row["PKId"].ToString()),tn2,true);}}}这个方法对两层树还管用,如果对于多层树就不行了。我不知道怎么改??

解决方案

解决方案二:
BindToTree递归调用思路没问题实际调试看看吧
解决方案三:
为什么要用2张表来实现呢,一张表完全可以实现多层次的,不过库结构和你的不一样,要改的话库结构就要变了

时间: 2024-09-20 12:00:08

数据库中的数据递归绑定到treeview遇到的问题的相关文章

wpf 怎样用数据库中的数据直接生成treeview?

问题描述 wpf 怎样用数据库中的数据直接生成treeview? 数据库表: 表: id name parentId 1 A -1 2 B 1 3 C 1 4 D 2 parentId=-1表示根节点 在treeview中A是根节点,B.D是A的节点,C是B的节点 希望可以直接将数据库中的二维结构表生成treeview,并添加删除节点,在wpf中应该怎样实现呢?试了很久一直没成功,希望各位前辈老师能帮忙解答,谢谢!

c# 一运行就卡住 但数据库中的数据操作是成功的

问题描述 c# 一运行就卡住 但数据库中的数据操作是成功的 C#做的windows窗体应用程序 点击添加的时候程序就卡住了 但是数据加到数据库里面了 ,其他的删除修改也是这样,数据库里面的数据操作成功了 就是程序会卡死 必须停下来重新运行,还有这些都是发生在我把combox绑定数据源后 绑定之前还好好的. 还有个问题是combox那一页的标签加载很慢,拖住窗口晃一晃就可以出来. 求大神解决啊 悬赏5个c币,我只有这么多了.... 解决方案 combox的数据源绑定对数据源大小是有限制的,看看你的

ajax-循环语句输出数据库中的数据,生成的表格,如何才能对某一行数据进行操作

问题描述 循环语句输出数据库中的数据,生成的表格,如何才能对某一行数据进行操作 循环语句输出数据库中的数据,生成的表格,如何才能对某一行数据进行操作,怎样才能获取到某一行的id 解决方案 如果我没有理解错你的意思的话 你可以这样试下. 在生成数据的时候 给每一行都 绑定一个事件 "onclick='liclick(this)'" 具体的处写在liclick方法中 点击时 由于参数为this 所以点击不同行 数据就不一样 解决方案二: 楼主 是用表格的形式 将数据显示在了 web页面上了

(在HTML中)我先将select控件中选取的值取出放入数据库(已经实现),然后我需要查看信息的时候从数据库中取出数据,如何让select控件显示我从数据库中取出的对应的值呢?

问题描述 前台<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>UntitledPage</title></head><body><formid="form1"runat="server"><div><selectid="Sele

使用Ajax动态获取数据库中的数据

问题描述 求助:.NET怎么用Ajax动态获取SQLServer数据库中的数据?当数据库中的某个表的内容发生变化时,就将这张表读取出来显示. 解决方案 解决方案二:做一个触发器吧,当有insert和update时读取整张表信息,前台ajax绑定代码如下://jqueryajax调用示例functiongetDataByClassid(id,cid){$(document).ready(function(){$.ajax({type:"GET",url:"GetGrid.asp

sqlite删除数据库中的数据时偶尔会出现错误

问题描述 sqlite删除数据库中的数据时偶尔会出现错误 java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed. 求助,connection pool 是啥啊,求大神指教. 解决方案 如果确定不是连接被关闭,那还有可能就是多线程访问sqlite,sqlite数据库是单线程操作的,那么当N多个Thread同时调用的时候,可能报这错误.这也就

jtable显示数据库中的数据,为什么数据显示不完全,第一列列名也没有

问题描述 jtable显示数据库中的数据,为什么数据显示不完全,第一列列名也没有 10C 解决方案 用JTable显示数据库数据将数据库中的数据显示到JTable上将Excel中的数据在JTable中显示 解决方案二: 你for循环写的从1开始的..

如何使用JAVASCRIPT从sqlserver数据库中获得数据

javascript|server|sqlserver|数据|数据库 如何使用JAVASCRIPT从sqlserver数据库中获得数据? --------------------------------------------------------------- var conn = new ActiveXObject("ADODB.Connection"); conn.Open("Data Source=190.190.200.100,1433;Initial Catal

保存数据库中其他对象不变,删除数据库中所有数据的实现方法

对象|数据|数据库 原帖内容:怎样把数据库中所有数据删除,然后把所有的自动增量复位?表太多,无法手工完成.http://community.csdn.net/Expert/topic/3094/3094555.xml?temp=.2920954 /*--原本打算这样--先禁用所有外键约束exec sp_msforeachtable "alter table ? nocheck CONSTRAINT all"--然后删除数据exec sp_msforeachtable "tru