Asp.net Treeview在一个级别上按需加载大量节点

Asp.net Treeview在一个级别上按需加载大量节点,asp.net,asp.net-ajax,treeview,telerik,Asp.net,Asp.net Ajax,Treeview,Telerik,我需要显示一棵树。但是,有些节点有35000个子节点(直接子节点!)。这当然是降低可用性的方法 我更希望看到树只加载那些在浏览器视口中可见的节点 这些树存在于WiFrm和C++,你知道有没有一棵树存在于ASP.NET?< /P> 我们目前正在使用,这是一个可爱的控件,但不支持所描述的情况 额外问题 从可用性的角度来看:你如何处理这些树。在一个级别上显示35000个节点很好,但是如何在该树中找到一些内容呢?你在树上使用分页吗?还是搜索框?或者添加额外的级别?我知道有一些jQuery支持的树控件。我

我需要显示一棵树。但是,有些节点有35000个子节点(直接子节点!)。这当然是降低可用性的方法

我更希望看到树只加载那些在浏览器视口中可见的节点

这些树存在于WiFrm和C++,你知道有没有一棵树存在于ASP.NET?< /P> 我们目前正在使用,这是一个可爱的控件,但不支持所描述的情况

额外问题


从可用性的角度来看:你如何处理这些树。在一个级别上显示35000个节点很好,但是如何在该树中找到一些内容呢?你在树上使用分页吗?还是搜索框?或者添加额外的级别?

我知道有一些jQuery支持的树控件。我不知道这些名字。ASP.NET树控件肯定不支持此操作,因为它不可轴化。对于显示35000个节点的问题,我会像这样对它们进行分页

node
|
-- Sub Node 1
|
-- ...
|
-- Sub Node n
|
-- more...
当您将鼠标悬停在多个节点上或单击它时,它将获得更多节点。如果显示100个子节点,我将加载200并隐藏其他100个子节点。这样,当您将鼠标悬停在“更多”上时,它看起来是不相关的。每次你在更多的地方徘徊。。。将加载下一个隐藏的100

此外,现在使用所有高级浏览器创建自定义树控件并不困难,可以使用
  • 嵌套来创建节点和子节点,然后应用适当的样式。如果您想使整个单击过程更轻松,则
  • 中可以包含链接


    我的两分钱。

    有这么多节点,即使你能找到一种性能好的方式来显示它们,你的用户可能也不会很容易使用它。想象一下,尝试滚动35000个节点,只是为了找到您感兴趣的节点!分页也是如此。用户真的要翻页3500页(假设页面大小为10页)才能找到他们的目标吗?可能不会,如果他们这样做了,他们可能不会太高兴

    相反,对于这样的大型数据集,我发现通常最好提供某种类型的“过滤器”UI。它使用户能够将可用数据“塑造”为更易于管理的集合

    我不确定你必须提供什么样的过滤能力(即你可以过滤哪些字段),但我认为这是你最好的选择。用户界面的选项包括:

  • 类似于RadGrid for ASP.NET AJAX的东西,它可以提供一个内置的过滤UI,使用户能够快速找到感兴趣的值
  • 使用RadTreeView的客户端API和对按需加载节点的支持,您可以创建一个文本框,根据用户类型过滤树中的节点。您只需处理TextBox的onkeyup事件,然后向web服务发出请求,以获取满足筛选条件的节点,并用结果替换TreeView的节点集合。这将使您的用户更容易找到他们的目标节点
  • 显然还有其他方法,但希望这能给你一些想法

    简短回答:对于大型数据集,我会结合使用实时过滤和web服务,为用户提供更易于管理的结果集。对于初始加载,我只加载前200个节点以保持高性能

    希望这有帮助! -托德