RadGridView with multiple hierarchical levels

0 Answers 27 Views
GridView
Joshua
Top achievements
Rank 1
Joshua asked on 04 Apr 2022, 02:09 PM

Hello,

 

i'm currently working with some hierarchical data that i wanted to present using a RadGridView with its ChildTable feature.

 

Unfortunately i'm running in quite severe performance issues once i try to auto expand the child tables (waiting between 15 to 25 seconds to see my data).

I've read that placing the RadGridView in a container with infinite height (like ScrollViewer, Grid with height 'Auto', etc) could lead to such performance issues, but i didn't place it in such containers.

 

I prepared and attached a little demo project to reproduce my problem.

 

It would be great if someone got some tips for me on how to improve the performance when expanding multiple levels of hierarchies in a RadGridView.

 

Greetings,

Josh

 

Stenly
Telerik team
commented on 07 Apr 2022, 01:56 PM

I will review the provided project and get back to you with more information on it tomorrow.
Stenly
Telerik team
commented on 11 Apr 2022, 02:47 PM

I am still looking at this and will get back to you tomorrow with additional information.
Joshua
Top achievements
Rank 1
commented on 11 Apr 2022, 02:52 PM

I appreciate you taking the time to look at my problem, hopefully there is some solution to the performance issues.
Stenly
Telerik team
commented on 13 Apr 2022, 11:59 AM

I have tested the provided sample project and indeed, when loading the RadGridView element with a two or a three-level hierarchy, with the "Auto expand child table" CheckBox being checked, a slower performance is observed. This occurs because each RadGridView control's size is measured with infinity when placed inside a HierarchyChildTemplate.

With that said, you could boost the performance when using hierarchies, and to do so, you could set the GroupRenderMode to Flat of each RadGridView element, as well as set a fixed Width and Height of every child grid view instance. On my end, inside the sample project, the performance was greatly boosted.

In conclusion, could you give this suggestion a try and let me know how it goes?

Regards,
Stenly
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Joshua
Top achievements
Rank 1
commented on 13 Apr 2022, 12:49 PM

I tried your suggestion and can confirm some performance improvements.

With all three levels on a fixed width and height i get around 4-8 seconds UI freeze until the data is displayed. Unfortunately my usecase doesn't allow me to set fixed heights for the different hierachy levels, since i can't say how many entries each hierachy will have. And i neither want a big gap between two entries nor do i want to scroll inside a hierachy, but only on the outer most Data Grid.

 

I also tried to surround every Data Grid in the ChildTemplate with a Grid and RowDefinition with Height="*", while only setting a fixed width to the Data Grids. This also improved the performance to around 7-15 seconds UI freeze until the data is displayed. But still feels way to slow for my application.

Stenly
Telerik team
commented on 14 Apr 2022, 12:34 PM

There are several approaches that could boost the performance of the RadGridView control. They could be found in the Tips and Tricks article from our documentation, so, could you give them a try?

In addition, placing each child RadGridView control inside a Grid layout and with RowDefinition that has it's Height="*", could lead to better performance, as observed on your side. By doing this, the UI Virtualization mechanism would not be disabled. Additionally, you could set a fixed size to the ColumnWidth property of each grid, as well as disable the touch support. On my end, a load of a three-level hierarchy, with the checkbox being checked, took around 4 seconds.

A different approach that comes to my mind, would be to utilize the IsBusy property of the main RadGridView control. to show.

No answers yet. Maybe you can help?

Tags
GridView
Asked by
Joshua
Top achievements
Rank 1
Share this question
or