WEB,想加载数据库,有很多级,为了速度,先显示第一级,然后在用户的点击下查找数据库进行加载,请问怎么实现,谢谢.

解决方案 »

  1.   

    当在客户端展开节点时,TreeView 支持对节点进行按需填充。这允许您仅向客户端发送全部节点的子集,当用户与 TreeView 交互时,再为展开的节点继续检索其他数据,这可提高页的总体性能。若要按需填充节点,请为不带子节点的节点设置 TreeNode PopulateOnDemand 属性,当该节点展开时应进行填充。然后处理 TreeNodePopulate 事件,以编写填充节点的逻辑。此事件在事件参数中传递对展开节点的引用。然后,可以以编程方式填充此节点的子节点,并将这些子节点返回至客户端进行呈现。 TreeView 支持两种模式的按需填充,这两种模式由 PopulateNodesFromClient 属性进行配置。当该属性设置为 true(默认值)时,TreeView 执行客户端回调,以从服务器事件中检索节点,而不回发整个页。只有在支持客户端回调(由浏览器的功能指示)的浏览器上,才支持此模式。当 PopulateNodesFromClient 设置为 false 时,TreeView 提交常规的回发,引发服务器事件,以填充节点。具体的用法,请参照MSDN, google.
      

  2.   

    用js树吧,用treeview还要要求对ie修改设置!
      

  3.   

    用treeview还要要求对ie修改设置
    这个我不明白,能否说的具体点,谢谢
    js树有代码吗?
      

  4.   

    你从数据库中肯定是调用递归算法加载节点
    你可以在在节点点击事件中调用递归算法展开加载节点
    你参考一下
                DataView dv = new DataView(this.areaTable);
                dv.RowFilter = "ParentAreaID = " + parentNode.Name;
                foreach (DataRowView row in dv)
                {
                    TreeNode newNode = new TreeNode();
                    newNode.Name = row["AreaID"].ToString();
                    newNode.Text = row["AreaName"].ToString();
                    newNode.Tag = new AreaExtensionInfo(row["ParentAreaID"], row["Description"]);
                    parentNode.Nodes.Add(newNode);
                    BuildTree(newNode);
                }