DevExtreme v23.1 is now available.

Explore our newest features/capabilities and share your thoughts with us.

Focused Row

The focused row feature allows you to display master-detail relationships and improve navigation through records.

To allow users to focus rows, set the focusedRowEnabled option to true.

Users can control the focused row using the following mouse and keyboard commands:

Mouse ClickFocuses a row.
↑ / ↓ Focuses the next/previous row.
← / → Focuses the cell to the left/right.
Esc Removes highlighting from the focused cell.

You can specify the initially focused row using the focusedRowKey or focusedRowIndex option. The grid is scrolled down to it. If you also set the focusedColumnIndex option, a specific cell in this row is focused.

$(function() {
        // ...
        focusedRowEnabled: true,
        focusedRowIndex: 0, // focus the first row
        // or
        // focusedRowKey: 100,
        focusedColumnIndex: 0 // focus the first cell
<dx-tree-list ...
    [focusedRowIndex]="0" <!-- focus the first row -->
    [focusedColumnIndex]="0"> <!-- focus the first cell -->
import { dxTreeListModule } from "devextreme-angular";
// ...
export class AppComponent {
    // ...
    imports: [
        // ...
    // ...

Change the same options using the option(optionName, optionValue) method to focus a row or cell programmatically. You can also use the navigateToRow(key) method to focus a row. This approach is more typical of jQuery and ASP.NET MVC Controls. With JavaScript frameworks, use property binding.

var treeList = $("#treeListContainer").dxTreeList("instance");
treeList.option("focusedRowKey", 100);
// or

The TreeList raises events before and after a row or cell is focused. Use the onFocusedRowChanging/onFocusedRowChanged and onFocusedCellChanging/onFocusedCellChanged functions to handle these events. You can perform custom actions in these functions, for instance, customize keyboard navigation, as shown in the onFocusedCellChanging example.