Hi,
I have an UltraGrid with around 150 Bands and each band has 30 or so child rows. The required operation is for the grid to appear with ALL bands expanded by default. The user can then just scroll down and not have to expand any bands manually. The works fine however the performance is unacceptable in that it takes some 20 seconds to display the whole grid with all expanded bands.
I have optimized as much as possible the formatting that is applied in InitializeLayout and InitializeRow but performance is still a problem.
I have since tried to programatically expand each band in turn if it is visible by checking the ActiveRowScrollRegion but this does not seen to be updated after I expand a particular band. I would have thought that expanding a band will affect the VisibleRows collection of the ActiveScrollRegion as some rows will now be off-screen.
Do you have any advice on how I might acheive the desired results or anything to add to the approaches I have tried?
Many thanks
bish
Hi Bish,
bish said:I have an UltraGrid with around 150 Bands and each band has 30 or so child rows. The required operation is for the grid to appear with ALL bands expanded by default. The user can then just scroll down and not have to expand any bands manually. The works fine however the performance is unacceptable in that it takes some 20 seconds to display the whole grid with all expanded bands.
What's your grid's DataSource? My guess is that you are using a DataSet. The DataSet is not very efficient when it goes to get the child rows for a particular parent. It doesn't do any caching or anything. So every time you ask it for the child rows of any particular parent row, it loops through the entire table to find the ones that match. This can be a very slow process for even one or two bands. I can only imagine that it will take hours with 30 bands.
This is, in fact, why the grid defaults to displaying expansion indicators on every row and only removes the indicator when the user clicks on it. Because if the grid automatically tried to get the count of the child rows to determine if a row needs expansion indicators or not, it would slow things down.
bish said:I have since tried to programatically expand each band in turn if it is visible by checking the ActiveRowScrollRegion but this does not seen to be updated after I expand a particular band. I would have thought that expanding a band will affect the VisibleRows collection of the ActiveScrollRegion as some rows will now be off-screen.
My guess is that the VisibleRows are updated asynchronously. Probably the next time the grid paints. So one thing you could try is calling Refresh on the grid to force a paint after you set the Expanded state of a row.
I have an UltraGrid with around 15 Bands . Using LinQ Query directly bind ultragrid. Here i want to display only 5 bands. How to hide bands dynamically.
Set the Hidden property on the bands you want to hide. The InitializeLayout even is a good place to do this.
I am working on C#.Net project with infragistics. My project i want to implement search options, like Microsoft office Outlook 2007 Instant Search functionality. For that i am using UltraComboEditor.In UltraComboEditor i have added 3 ValueListItems(Search all screen, search current screen, search options). I want to add one more items "Resent searchs", but this item should be list items, i dont know how to add one more listitem into UltraComboEditor.
Thanks
I'm having trouble understanding your question(s).You appear to have posted two questions to this thread and your questions don't seem to be related to the original thread.
Do you still need an answer to your first question?
If you have added three items to the UltraComboEditor, then what is the difficulty in adding a fourth item? It's exactly the same, so the question does not seem to make sense.