在网站的开发中,需要用到目录树,一想就想到了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 新建文件夹  新建      \文件\       这个的目录是和电脑上的文件的目录是一致的,以上是部分的数据,请问我现在的这个目录树该是怎么去做了?各位有什么好的办法吗,谢谢啊。分不够可以再加的,解决问题先,急死人了,效率第一啊!

解决方案 »

  1.   

    TreeView控件本身似乎不能异步读取吧?!需要自己写JS代码的
      

  2.   

    在树的节点上绑定标识,当点击某一个节点时,触发SelectedINdexChanged事件,在该事件内获取前面绑定的标识,然后到数据库里取。这样的问题是,刷新太多,如何解决刷新的问题,我也不清楚,网上有些资料,但只能解决一部分问题。可以在TreeNode的NodeData属性里绑定标识
      

  3.   

    http://www.51forbes.net/去阿信那里下个就可以
      

  4.   

    我覺得你的數據結構要改善
    可參見我的博客
     http://blog.csdn.net/cityhunter172/ 中的《在 ASP.NET 页面中使用 TreeView 控件》
      

  5.   

    我公司曾做了一個可分頁顯示的樹
    關鍵是數據結構,可不太方便公布給你個思路吧
    先排序(要進行分頁就必定要有排序)
    然后再存儲過程里根據上頁中最後的父 TreeID 找出當前頁 父 ID
    最後再一層一層往下找
      

  6.   

    谢谢楼上的回复:
    谢谢,lytone52(啥叫郁闷)恩,你说的比较有道理,那样在效率上不是很行。
    Thanks,WeekZero(星期零) 阿信的那个好象出来的速度比较慢,感觉不是很好。
    谢谢,cityhunter172(寒羽枫) ,你的方法我还没有仔细看,先研究先,不知道行不行。我找了个:http://www.51windows.net/data/files/file_301.asp,研究了很成时间,没办法实现记忆节点的功能,诶。再看看了,非常感谢楼上这么多朋友的热心回答,谢谢!