DevExtreme DataGrid & TreeList - Accessibility, UX and API Enhancements (v19.1)

DevExtreme Team Blog
29 April 2019

We've added five major enhancements to the DevExtreme DataGrid and TreeList widgets:

  • Accessibility Enhancements
  • Keyboard Navigation Enhancements
  • Data Editing - New API
  • New Double-Click Events
  • TreeList - A New Filter Mode

The DataGrid and TreeList now provide better accessibility, user experience (UX), and better API. Let's take a look at what benefits these enhancements provide you and your end users.

Note: DevExtreme supports many platforms. So, these enhancements are available for the DataGrid and Treelist controls that run on Angular, Vue, React, jQuery, and ASP.NET MVC and ASP.NET Core.

Accessibility Enhancements

Web accessibility is an important feature for the DevExtreme components.

In the latest release, we've added enhancements to further our accessibility support. End users can now use the keyboard to interact and navigate to UI elements of the DataGrid and Treelist:

DevExtreme DataGrid Keyboard Navigation Accessibility

All action elements are now be accessible using the keyboard (headers, filter panel, pager, command columns, etc.)

These enhancements work out-of-the-box without the need to set or enable an option. Set the useLegacyKeyboardNavigation option to true to use the previous keyboard navigation behavior. Learn more here.

Keyboard Navigation Enhancements

Based on your requests, we have introduced several new keyboard behavior options. They allow you to enable a variety of fast data entry scenarios.

Start Editing on KeyPress

A user can now instantly edit data without switching to edit mode. It works like editing cells in Excel. For example, in the GIF below, you can see the edit start as soon as I type some changes, then when I use the arrow keys, I'm able to easily move to the next cell:

Start Editing via KeyPress

Use the keyboardNavigation.editOnKeyPress property to enable the feature.


Configurable Enter Key Action

It's now possible to specify what action the Enter key will perform: switch to edit mode or navigate to the next cell:

Use the keyboardNavigation.enterKeyAction to enable the start editing using the Enter key.


Configurable Enter Key Direction

You can now configure if the Enter key will navigate to the next column or row:

Use the keyboardNavigation.enterKeyDirection property to choose the cell focus direction after the Enter key is pressed.


New Double-Click Events

We've added new cell and row double-click events for the DataGrid and TreeList.

Use the new onCellDblClick and the onRowDblClick events to implement different scenarios. For example, you can display details on row double-click by adding a popup window or navigating to a detail page.

Data Editing - New API

We're adding a new data editing API which makes editing faster and more intuitive.

Text Selection on Edit

Currently, when you edit a cell or row, the text in the focused editor is not selected. So, to replace the current value, an end user would need to first clear the current value and then enter the new value.

With this new added option, all text in the editor is selected when editing is started. This means the end users can edit cell values in the table faster and easier than before:

DevExtreme Grid TreeList - Select all text before edit

Use editing.selectTextOnEditStart option to enable this feature.


Start edit action

We've added a new data editing enhancement. Now you can start cell editing using the double-click mouse action. The current single-click option is also available. Use the editing.startEditAction option to control for single or double click.

While the current single-click is useful, it has a couple of issues. It's not possible to use the single selection and focused row features because they rely on the single-click action. But with the new dblClick start edit action, the single selection and focused row can still be used.


TreeList - A New Filter Mode

We've extended the filtering capabilities of the TreeList with a new mode. It can now include children of filtered nodes into the filter results.

A new filter option, filterMode, helps you to control how the filtered search results are displayed. The option accepts the following two values:

  • withAncestors (default mode) - The filtered results include the rows which meet the filter condition and their ancestors only, no descendants. Here's an example:

DevExtreme TreeList Filter - with ancestors

  • fullBranch - The results include rows which meet the filter condition with both their ancestors and descendants. The descendant rows appear collapsed. Here's an image which shows the subtle difference:

DevExtreme TreeList Filter - full branch

Test it online here: DevExtreme TreeList - Filter Demo

Test It Now (and provide feedback)

Test-drive the public beta now. Use the npm pre-release package:

npm install --save devextreme@19.1-next

Then let us know your experience with these DataGrid and TreeList enhancements.

Your Feedback Counts

We’d like to hear from you about your development plans and needs. Feel free to leave comments below, open Support Center tickets for detailed discussions or take part in conversations in our GitHub repository.

For some quick feedback, please submit your responses to this short survey:

Join the Webinar

Sign up for the upcoming "What's New in v19.1 - JavaScript: jQuery, Angular, React, and Vue" webinar where:

  • you'll see all the new features/tools/components in v19.1 and
  • you can ask questions and interact with our devs

Register today:

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.
No Comments

Please login or register to post comments.