我相信有很多人一定和我遇到一样的事情。首先我的树是由递归生成,并且带有状态,状态是由最地层传递到最上的,我想问的是,递归生成其实有两种方法,如果有500-2000个节点的时候
第一 C# 写递归,
第二 在SQL2005 CTE完成
这两个东西那个效率好。还有就是对生成的树如果做筛选的话,通常那种方法比较好。
第一 在递归的时候查表的用WHERE IN()这种生成表。
第二 软件递归每个节点的TAG 判断属性最后一个就是刷新树的时候,大家通常喜欢用什么方法
第一 重新查数据库,treeview。clear()重新建立新树。
第二 更具变动,添加删减treenode。
比较每经验让大家见笑了,很多时候环境不同方法给出的结果也会偏差,郁闷中
我treeview 使用了beginupdate(),我生成1000个点的树需要2-5s,我觉得界面非常不友好
第一 C# 写递归,
第二 在SQL2005 CTE完成
这两个东西那个效率好。还有就是对生成的树如果做筛选的话,通常那种方法比较好。
第一 在递归的时候查表的用WHERE IN()这种生成表。
第二 软件递归每个节点的TAG 判断属性最后一个就是刷新树的时候,大家通常喜欢用什么方法
第一 重新查数据库,treeview。clear()重新建立新树。
第二 更具变动,添加删减treenode。
比较每经验让大家见笑了,很多时候环境不同方法给出的结果也会偏差,郁闷中
我treeview 使用了beginupdate(),我生成1000个点的树需要2-5s,我觉得界面非常不友好
---------------------
这么多的话,一般是只加载第一层树,然后用户点击哪个节点再加载此节点的子节点,像CSDN左边树一样,如果一下全部加载完,估计怎么优化都会比较慢
---------------------------------------------
节点多点倒没什么,主要是层数少点,怎么说也比CTE合理,还是可取的。
---------------------
这么多的话,一般是只加载第一层树,然后用户点击哪个节点再加载此节点的子节点,像CSDN左边树一样,如果一下全部加载完,估计怎么优化都会比较慢
此解正解
我遇到过,只有加入ajax,
onexpand的时候即时下载dataset更新节点
如果有500-2000个节点的时候
==========================================模仿windows资源管理器。它是一开始仅仅遍历磁盘,也就是生成第一层结点,然后根据你的选择,再遍历某个磁盘下的第一级文件......本着“用到再取”的原则 构建
学一招..
学一招..
---------------------其实我用设备编码作了个深度,其实两表对查只是方式而已,关键还是那个深度
好办法~~谢了