在网站的开发中,需要用到目录树,一想就想到了Microsoft的treeview控件,数据库的目录是无限级的,写了段代码这个是可以实现了。不过在使用过程中发现好象加载个1000-2000以上个节点的时候,速度就很慢了,好象要好几分种,我知道造成这个原因有两种情况:一是数据库的反映时间比较长,二是数据返回到客户端的时间比较慢。但是,我那么多的节点有很多对不同的用户来说,是根本就不需要加载那么多的。所以我想实现对treeview的分步加载,实现用户需要看那个目录下的,就读数据库的那个目录下的子目录。类似的技术:①Microsoft的Msdn,地址:http://www.microsoft.com/china/msdn/library/webservices/WebApp/us0501WebQA.mspx②Csdn论坛左边的JS的控制方式。我的数据库结构的目录如下:
ID 项目ID 成果阶段ID 文件名称 文件子目录 文件父目录
667 12 11 DWG \ \
668 12 11 123 DWG \
697 12 11 456 DWG \
731 12 11 JPG \ \
732 12 11 Swf JPG \
737 12 11 其它 JPG \
743 12 11 其它 \ \
744 12 11 文本 \ \
749 13 12 DWG \ \
750 13 12 JPG \ \
761 13 12 其它 \ \
763 13 12 文本 \ \
766 10 11 temp \ \
770 10 11 文件 \ \
774 10 11 新建 文件 \
777 10 11 新建文件夹 新建 \文件\ 这个的目录是和电脑上的文件的目录是一致的,以上是部分的数据,请问我现在的这个目录树该是怎么去做了?各位有什么好的办法吗,谢谢啊。分不够可以再加的,解决问题先,急死人了,效率第一啊!
ID 项目ID 成果阶段ID 文件名称 文件子目录 文件父目录
667 12 11 DWG \ \
668 12 11 123 DWG \
697 12 11 456 DWG \
731 12 11 JPG \ \
732 12 11 Swf JPG \
737 12 11 其它 JPG \
743 12 11 其它 \ \
744 12 11 文本 \ \
749 13 12 DWG \ \
750 13 12 JPG \ \
761 13 12 其它 \ \
763 13 12 文本 \ \
766 10 11 temp \ \
770 10 11 文件 \ \
774 10 11 新建 文件 \
777 10 11 新建文件夹 新建 \文件\ 这个的目录是和电脑上的文件的目录是一致的,以上是部分的数据,请问我现在的这个目录树该是怎么去做了?各位有什么好的办法吗,谢谢啊。分不够可以再加的,解决问题先,急死人了,效率第一啊!
可參見我的博客
http://blog.csdn.net/cityhunter172/ 中的《在 ASP.NET 页面中使用 TreeView 控件》
關鍵是數據結構,可不太方便公布給你個思路吧
先排序(要進行分頁就必定要有排序)
然后再存儲過程里根據上頁中最後的父 TreeID 找出當前頁 父 ID
最後再一層一層往下找
谢谢,lytone52(啥叫郁闷)恩,你说的比较有道理,那样在效率上不是很行。
Thanks,WeekZero(星期零) 阿信的那个好象出来的速度比较慢,感觉不是很好。
谢谢,cityhunter172(寒羽枫) ,你的方法我还没有仔细看,先研究先,不知道行不行。我找了个:http://www.51windows.net/data/files/file_301.asp,研究了很成时间,没办法实现记忆节点的功能,诶。再看看了,非常感谢楼上这么多朋友的热心回答,谢谢!