【发布时间】:2009-05-29 16:01:15
【问题描述】:
我开发了一个应用程序,它从数据库中的分层数据填充树视图。
我将它设计为使用延迟加载,因此它仅在节点展开时获取子节点。
我的问题是,除非我调用数据库并查看,否则显然我不知道节点是否有子节点。目前我已经实现了一个虚拟子节点,因此所有节点都会出现[+]图标,然后我删除这个虚拟节点并在BeforeExpand事件中获取真正的子节点。
这意味着对于没有子节点的节点,我会得到一个 [+] 图标,因此用户单击展开图标时,没有任何显示看起来有点粗制滥造。
在延迟加载树视图中处理子节点的首选方法是什么?如果我调用数据库来查看是否有子节点,那么我还不如只加载子节点而忘记延迟加载吧?
我的一个想法是在数据库中存储一个“HasChildren”标志,这样我就可以有选择地仅为那些实际上确实有子节点的节点创建我的虚拟子节点。
对不起,我很想看看其他人的想法......
【问题讨论】:
-
顺便说一句:这是 Visual Studio 2005 中的 Treeview
标签: sql database treeview lazy-loading