Is it possible to implement virtual mode for multicolumn UltraTree similar to virtual mode in UltraGrid?
I need to load potentially very large set of data (100k rows or more) with up to a 100 columns in each row but I already see performance degradations when I try to load 1000 rows. Can you please advice on best strategy to handle large amounts of data in UltraTree.
Thanks
Are you binding the tree or adding data to it manually?
manually
There's a sample included in the NetAdvantage SDK that shows how to load the child nodes in the BeforeExpand event so you can load one nodes collection at a time.
But there's really no good way to load a single collection on-demand. The tree doesn't have any support for adjusting the scrollbars so that the match the "real" number of rows of data and not the actual number of nodes in the tree.
You might want to explore the option of using UltraDataSource to load your data. There's a sample called the Virtual Mode sample which uses the UltraDataSource along with an UltraWinGrid to load data on-demand. The grid has better support for this kind of thing than the tree does.
Thanks for the answer. I think I'll have to scrap my UltraTree project and redo it using UltraGrid - I'm missing too much grid functionality in the multi-column Ultratrees. It's frustrating when you get 95% where you want to be and the remaining 5% kills you.
I'm guessing there are no plans to add virtual mode and cell selection/navigation to trees anytime soon?
No such plans have been announced. Although, it is a populate request.
So are we saying that the AddRange method doesn't support nodes that have multiple cells?
Right now I"m doing the following. I would love to use an AddRange approach to add nodes.
UltraTreeNode utn = collection.add();
utn.SetCellValue(utn.DataColumnSetResolved.Columns["FILENAME"], "Foo.txt");
utn.SetCellValue(utn.DataColumnSetResolved.Columns["SIZE"], "15 KB");
Please help.