我相信有很多人一定和我遇到一样的事情。首先我的树是由递归生成,并且带有状态,状态是由最地层传递到最上的,我想问的是,递归生成其实有两种方法,如果有500-2000个节点的时候
第一 C# 写递归,
第二 在SQL2005 CTE完成
这两个东西那个效率好。还有就是对生成的树如果做筛选的话,通常那种方法比较好。
第一 在递归的时候查表的用WHERE IN()这种生成表。
第二 软件递归每个节点的TAG 判断属性最后一个就是刷新树的时候,大家通常喜欢用什么方法
第一 重新查数据库,treeview。clear()重新建立新树。
第二 更具变动,添加删减treenode。
比较每经验让大家见笑了,很多时候环境不同方法给出的结果也会偏差,郁闷中
我treeview 使用了beginupdate(),我生成1000个点的树需要2-5s,我觉得界面非常不友好

解决方案 »

  1.   

    有500-2000个节点的时候
    ---------------------
    这么多的话,一般是只加载第一层树,然后用户点击哪个节点再加载此节点的子节点,像CSDN左边树一样,如果一下全部加载完,估计怎么优化都会比较慢
      

  2.   

    第一 C# 写递归
    ---------------------------------------------
    节点多点倒没什么,主要是层数少点,怎么说也比CTE合理,还是可取的。
      

  3.   

    我其实使用代码递归的,没有用CTE 但是我觉得2-5s的过滤其实不是很爽,因为写递归的时候总是有Table.select操作的我现在尝试着用双线程,操作递归树,不知道效果如何,但是随之而来的,例如线程同步什么的也是问题呵呵。其实延时就延时了,也无伤大雅,但是总是希望有点最求和收获呵呵
      

  4.   

    有500-2000个节点的时候
    ---------------------
    这么多的话,一般是只加载第一层树,然后用户点击哪个节点再加载此节点的子节点,像CSDN左边树一样,如果一下全部加载完,估计怎么优化都会比较慢
    此解正解
      

  5.   

    500-2000 
    我遇到过,只有加入ajax,
    onexpand的时候即时下载dataset更新节点
      

  6.   

    我问题解决了,我用Hashtable表和datatable对查解决的,效果很明显肉眼可以感觉呵呵,希望给我同样问题的朋友一点提示
      

  7.   


    如果有500-2000个节点的时候
    ==========================================模仿windows资源管理器。它是一开始仅仅遍历磁盘,也就是生成第一层结点,然后根据你的选择,再遍历某个磁盘下的第一级文件......本着“用到再取”的原则 构建
      

  8.   

    编程动力 www.bcexe.com 专业的编程开发类网站,网络编程,软件开发,网站开发,一切尽在这里!
      

  9.   

    用Hashtable表和datatable对查解决
    学一招..
      

  10.   

    用Hashtable表和datatable对查解决
    学一招..
    ---------------------其实我用设备编码作了个深度,其实两表对查只是方式而已,关键还是那个深度
      

  11.   

    用Hashtable表和datatable对查解决
    好办法~~谢了