Hi,
I need to create a grid with up to 20 or 30 child bands levels to display read only hierarchical dataI do not want to use ultratree to be able to benefit from ultragrid excel export and print built-in functionnalities.The issue I have is that when binding the datasource to the grid it is very slow.I can reproduce the issue with the virtual mode samplevar band = this.ultraDataSource1.Band; for (int i = 0; i < 20; i++) { UltraDataBand childBand = band.ChildBands.Add(i.ToString()); childBand.Columns.Add("Prime Factors", typeof(string)); band = childBand; } // Set grid's data source to the ultra data source that we just setup. this.ultraGrid1.DataSource = this.ultraDataSource1;
The last line of code is very slow to perfom even if do not have any actual data in the datasource.Is there any recommandations or workaround to do this.
Thanks in advance
30 child bands is pretty steep. No human user could possible deal with so much data all at once. So my first recommendation would be to break up the data and present it to the user in smaller chunks if you possibly can - just to provide them with a better UI.
If you must display that much data in a single grid, then there are a number of reasons why it might be slow with this much data. I recommend that you check out the WinGrid Performance Guide. There is a lot of advice there on how to make your grid more efficient.
Also, there is a follow-up discussion here with a discussion of data sources.
If none of that helps you, see if you can post a small sample project demonstrating the issue, and I will be happy to take a look at it and see if I can find out what's going on.
Thanks for those answers.The perfomance guides helped me a little but I still have the issue when binding source to the grid with 20 bands. As it is not a so usual user case I will stick with the grid.
Is there any plan to implement printing and excel export to the ultratree component as if think sa would be a better choice for my case.
Franck