Row Selection: Allows users to select multiple rows in the grid.
Column Selection: Enables users to select entire columns.
Grouped Row Selection: Can render optional group-level checkboxes that select all descendant data rows.
Checkbox-Based Row Reorder: Can hand checkbox-selected rows to RowOrderPlugin so checked rows drag as one compact block.
Automatic Theme Support: The plugin adapts to light or dark themes based on user settings.
Flexible and Extensible: This plugin demonstrates the potential for creating custom plugins, encouraging developers to expand the grid’s functionality further.
To enable the RowSelectPlugin in your RevoGrid setup, you have two options:
You can also use the future-compatible object form:
1
grid.rowSelect = {
2
grouping: {
3
enabled:true,
4
},
5
};
When enabled, selecting a group checkbox selects all descendant data rows. Selecting only part of a group reflects an indeterminate state on the group checkbox. Synthetic grouping rows are not included in selected row counts.
RowSelectPlugin can opt into RowOrderPlugin integration. When enabled, dragging a checked row moves all visible checked data rows in the current row viewport as a compact block.
This feature is disabled by default. Existing row-order behavior is unchanged unless rowSelect.rowOrder is enabled.
Checkbox selection takes priority over range selection only when the dragged row is checked. If the dragged row is not checked, RowOrderPlugin falls back to its current range-selection or single-row behavior.
Only visible checked data rows move during the drag. Rows hidden by filtering, collapsed grouping, or collapsed tree branches remain selected but are not part of that drag operation. Synthetic grouping rows are never moved as selected data rows.
Row selection is stored against real data row indexes, not the rendered row position. This keeps checkbox state stable when the visible row topology changes.
Case
Behavior
Filtering
Selected hidden rows remain selected. The rowselected event is re-emitted so visibleCount and visibleRowsCount reflect the filtered view.
Sorting
Checkbox state follows the same data rows after sort order changes.
Row drag
Checkbox state follows moved data rows after row order changes.
Checkbox row-order
When rowSelect.rowOrder is enabled, visible checked rows are moved as a compact block before range selection is considered.
Grouping
Group checkboxes are opt-in through rowSelect.grouping; synthetic group rows are not counted as selected rows.
Tree data
When TreeDataPlugin is registered, selecting a tree parent toggles the parent and descendants. Dragging a checkbox-selected tree parent with descendants preserves the subtree relationship.
The live demo on this page is the common Bulk Row Selection example. It includes flat, grouped, and tree modes, a row checkbox column, row drag handles, group checkbox selection, filtering, sorting, selected/visible totals, and opt-in checkbox-based row reorder.