Asp.net TreeView控件 - 最大节点数

时间:2010-04-13 05:08:22

标签: c# asp.net treeview

我在ASP.NET页面中有一个treeView控件,它将在不同级别加载最多12,000个节点。 例如:

  • 节点1

    • 节点1.1 ...

      • 节点1.400

        • 节点1.400.1

          ...

        • 节点1.400.6400
  • 节点2
  • 节点3
  • 节点4

根据这个链接:

http://msdn.microsoft.com/en-us/library/ms529261.aspx

节点限制为1000.这是正确的还是取决于可用内存(请指定值)?

假设它是正确的。有没有办法将4600个子节点分成300块?我想如果使用虚拟节点(上一个/下一个导航)来导航块将很容易加载html页面。

C#中的示例代码将不胜感激。 (或者如果你不能将它翻译成C#,则为VB.NET)

4 个答案:

答案 0 :(得分:1)

TreeNode node;
node = new TreeNode(Session["Type"].ToString(), Session["Type"].ToString(), "", "Sub_cat.aspx?MainCat=" + Session["Type"].ToString(), "");
node.SelectAction = TreeNodeSelectAction.SelectExpand;
TreeView1.Nodes.Add(node);
string str1 = "select * from sub_cat where main_cat='"+Session["Type"].ToString() +"'"; ///+ node.Text + "'";
dt1 = db.gettable(str1);
for(int x=0;x<dt1.Rows.Count;x++)
{
    //Session["subcat"] = dt1.Rows[x]["sub_cat"].ToString();
    string sub = dt1.Rows[x]["sub_cat"].ToString();
    TreeNode node1 = new TreeNode(dt1.Rows[x]["sub_cat"].ToString(), dt1.Rows[x]["sub_cat"].ToString(), "", "Product_collection.aspx?sub_cat=" + sub, "");
    node1.SelectAction = TreeNodeSelectAction.SelectExpand;
    //TreeView1.Nodes.Add(node1);
    node.ChildNodes.Add(node1);

    string str2 = "select * from product_master where main_cat='" + Session["Type"].ToString() + "' and sub_cat='" + node1.Text + "' order by product_code asc";
    dt2 = db.gettable(str2);
    for(int y=0;y<dt2.Rows.Count;y++)
    {
       // Session["product_code"]=dt2.Rows[y]["product_code"].ToString();
        string code = dt2.Rows[y]["product_code"].ToString();
        TreeNode node2 = new TreeNode(dt2.Rows[y]["product_code"].ToString(), dt2.Rows[y]["product_code"].ToString(), "", "prod_desc.aspx?product_code=" + code, "");
        node2.SelectAction= TreeNodeSelectAction.SelectExpand;
        node1.ChildNodes.Add(node2);
    }
}

答案 1 :(得分:0)

是的,这是真的我在阅读此链接http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/dcacb090-73a2-4845-ab19-e280ea373ffb

后几乎已经检查过了

答案 2 :(得分:0)

当用户扩展节点级别时,您不应该一次加载超过可见节点,您可以/可以/应该/必须使用按需加载来加载子级,等等只在需要时递归。

不要重载页面渲染加载所有节点,没有任何意义。

搜索按需加载的asp.net treeview和类似的...

答案 3 :(得分:0)

最后,我们使用Obout treeview,因为它没有我的问题所述的asp.net树视图的限制,而且我可以加载1000个节点没有问题,它的虚拟加载功能很棒