Improvements for Relational Data Lists with Large Data Sets

Improvements were made to relational data lists that manage large data sets. Within a PageDefinitionSpec element, it has always been possible for the developer to display a data list in a relational (tree) view by placing a RenderStyle parent element that contains a RelationalView child element.

Example of a PageDefinitionSpec displaying a tab with a DataList displayed in RelationalView

Paging for Relational Data Lists

In an effort to improve performance, all relational data lists within the Web Shell user interface now automatically page when more than 25 top-level records are present. No SDK-level action or configuration is required to achieve this functionality. In the screen shots below, the data list is displayed relationally within the page. The data list contains 26 top-level price lists. Notice the 26th item is pushed to a second page.

Automatic paging with more then 25 top-level records

RelationalView Element's LimitRowsDisplayed Attribute

Setting the LimitRowsDisplayed attribute determines whether the number of rows rendered in the list will be limited based on the performance capabilities of the web browser. The default value is false. This setting is good for trees that have very deep hierarchies with lots of items, where one page may still contain a many rows of data. When the setting is true and the maximum number of items have been loaded, the user will see a message stating that additional rows are available but are not displayed. The maximum number of rows is automatically selected based on the user’s browser:

  • Internet Explorer – 500 items

  • Chrome—1,000 items

  • All other browsers—800 items

For trees that are very deep — e.g. trees that have many items per page — we recommend using the following combination of settings that causes the tree to load collapsed, and the user can dive into the nodes that are important to them. As users navigate the tree and open too many items, they will be alerted that the tree can no longer render more items and they will be unable to expand other areas of the tree. However, if they want to expand different segments of the tree, they can refresh the tree (it will collapse again) and then dig further into different portions of the tree.

  • LimitRowsDisplayed = true

  • ExpandFirstLevelNodes = false

  • ExpandAllOnLoad = false

RelationalView Element's HideExpandAll and HideCollapseAll Attributes

Enabling the HideExpandAll attribute option hides the Expand all button at the top of the tree. You should consider enabling this option when LimitRowsDisplayed=true and when expanding all items is likely to immediately place the user in a situation where the maximum item count is reached. Setting the HideCollapseAll attribute equal to true hides the Collapse all button at the top of the tree.

The HideCollapseAll and HideExpandAll attributes in Design Mode