The Dynamics grid (d365f0 ListView component) lacks many of the features that our users expect, based on their experience with other web-based applications.
In particular, it isn't at feature parity with the Office 365 components. Through the life of the new Dynamics, we haven't seen the grid improve through the update process yet.
Performance of scrolling is the major deficiency that concerns us.
- When scrolling a large dataset (more than a few dozen rows), the client-side control loads a fixed number of records from the server. When these records are exhausted, the UI is pre-empted to load the next set of records.
- Developers have no control. Missing API features are: the page size (number of records to load at a time), and the number of pages to load ahead of time (buffering).
- The scroll bar resizes with each new set of data. This means it cannot be used to navigate a dataset - its primary purpose.
Major missing features that our users have voiced their concern about include:
- A simple column selector.
- Users have to go through the personalization UI. Most controls provide a context menu available on right-click to select columns.
- Wrapped headers.
- Text in headers cannot wrap, leading to truncated labels where there are more than a trivial number of columns.
- A functioning scrollbar.
- Current scrollbar resizes every time a new data page is loaded (as the user scrolls down). As a result, the scrollbar cannot be used to navigate a dataset - it's primary purpose.
- Hierarchical presentation of records.
- Many controls allow nesting, providing a visual indication of hierarchical lists. We're limited
- Frozen (pinned) columns
- Allowing user-specified collumns to remain visible on the left side while the control is scrolled left-to-right.
- Grouping and summary.
- Grouping by user-selected columns, and providing a summary row below.
- Functioning paste or fill-down.
- Selection works at a record-level initially, rather than providing focus to the cell a user clicks in (or keyboard navigates to).
- Users therefore cannot copy/paste a value from a point (x,y) in a grid to a point (x, y+1). This is a very common operation when working with tabular data, and moving the to Excel and back is not feasible in many scenarios.
- Programmatic formatting of the contents of single cells.
Microsoft grid controls that implement most of these features:
- Fabric UI React List control used in Office 365:https://dev.office.com/fabric#/components/list
- Fabric UI JS List control: https://dev.office.com/fabric-js/Components/List/List.html
Other common grids that have managed to implement the features above include:
- Kendo UI grid: http://demos.telerik.com/kendo-ui/grid/index
- JQWidgets' jqxgrid: https://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/index.htm
Generally, the grid started off incomplete in AX7, and since release, has fallen farther behind most other business applications. Please evaluate these (and other!) gaps for inclusion in platform updates.