2010-04-13 8 views
0

У меня есть элемент управления treeView на странице ASP.NET, который будет загружен до 12 000 узлов на разных уровнях. Например:Asp.net TreeView control - максимальное количество узлов

  • Узел 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# будет с благодарностью оценен. (Или VB.NET, если вы не можете перевести его на C#)

ответ

0

В конце концов, мы используем Obout treeview, потому что он не имеет ограничений на asp.net TreeView заявил на мой вопрос, плюс я может загружать 1000 узлов без проблем, и функция виртуальной загрузки отличная.

0

Да, это правда, я проверил его практически после прочтения этой ссылке http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/dcacb090-73a2-4845-ab19-e280ea373ffb

+0

В ссылке не упоминаются максимальные = 1000 узлов, и они ссылаются на представление дерева формы выигрыша. Если это помогает целевому браузеру только IE. –

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); 
    } 
} 
0

Вы не должны загружать больше видимых узлов сразу , когда пользователь расширяет уровень узла, вы можете/должны/должны/должны использовать нагрузку по требованию для загрузки детей и т. д. рекурсивно только тогда, когда это необходимо.

Не перегружайте страницу, загружая все узлы, не имеет смысла.

поиск нагрузки на спрос asp.net TreeView и подобное ...

+0

Я загружаю узлы по требованию, но все же древовидный вид будет иметь все загруженные узлы, присутствующие в клиентском браузере. (Другими словами, страница может начинаться с 20 начальных узлов, но поскольку пользователь расширяет узлы - тогда элемент управления может содержать тысячи узлов). –

Смежные вопросы