What's new
Before updating DHTMLX to the latest version, please check the Migration to Newer Versions guide to avoid possible breakdowns.
Version 9.3
Released on February , 2026
New functionality
- Grid. The ability to specify a flexible configuration for export to the CSV, XLSX, PDF, and PNG formats (PRO version)
- new Grid configuration property:
exportConfig
- new Grid configuration property:
- Grid. The ability to define the behaviour of a dragged item in the TreeGrid mode (PRO version)
- new Grid configuration property:
dropBehaviour
- new Grid configuration property:
- Grid. The ability to define the position of the footer and frozen rows within the component container (PRO version)
- new Grid configuration property:
footerPosition
- new Grid configuration property:
- Grid. A new
dateFiltertype of filter for the column header is added (PRO version) - Tree. The ability to add tooltips for the items
- new Tree configuration property:
tooltip
- new Tree configuration property:
- Window. The ability to set a window to the active state
- new Window method:
setActive()
- new Window method:
Updates
- Chart. Export module. The
pdf()andpng()export functions return a promise of data export - Grid. Export module. The
pdf(),png(),xlsx()andcsv()export functions return a promise of data export - Grid. The functionality of column header filters is updated:
- the
setValue()method (of thegetHeaderFilter()API), can take a Date object or an array of Date[] objects as a parameter - the
valueparameter of the callback functions offilterChangeandbeforeFilterevents can be a Date object or an array of Date[] objects - the parameters of the
customFiltercallback function can be Date objects or arrays of Date[] objects
- the
Fixes
- Grid. The inability to set a single date in the range mode is fixed
- Grid. Performance issues that occurred while filtering large data sets via
inputFilter
New samples
Grid
- Grid. Custom export logic for PDF, PNG, XLSX, CSV
- Grid. Fixed rows positioned at the bottom
- Grid. Footer positioned at the bottom
- Grid (TreeGrid). Drop behaviour
Tree
Window
Version 9.2.8
Released on January 28, 2026
Fixes
- Grid. Enable the ability to use block selection when the editor is open
- Layout. Incorrect resizing of a cell with an attached iframe
Version 9.2.7
Released on January 15, 2026
Fixes
- Grid. Data isn't grouped via the group panel
Version 9.2.6
Released on January 13, 2026
Fixes
- Dataview, Grid, List. The issue with the functionality of the
beforeAddevent during drag-n-drop - Grid. The ability to enable grouping in Grid with
subrowis fixed - Grid. The ability to group a non-existent column without actual grouping is fixed
- Grid. The
comboFilternot updating the options on adding new items or editing the existing ones - Grid. Incorrect behavior of the
comboFilterwith enabled multiselection - Grid. The issue with the custom scroll being duplicated by the system scroll in Firefox on Windows 11
- Grid. On grouping by a column with options, export to CSV/XLSX outputs the option's id instead of the displayed option's value
- Sidebar. The functionality of the
navigationTypeconfiguration option is fixed
Version 9.2.5
Released on November 28, 2025
Updates
- DataCollection. The
beforeAdd,afterAdd,beforeRemove, andafterRemoveevents are updated to include thebatchandindexparameters for handling batch operations
Fixes
- Grid. Improved performance of adding and removing data via the
add()andremove()methods when theadjustconfiguration is enabled - Grid. The issue where the combo filter with enabled
multiselectiondisplayed all options ignoring other active filters is fixed - TreeCollection. The issue where the
itemsproperty of a parent object returned by thegetItem()andfind()methods included a removed child item is fixed
Version 9.2.4
Released on November 17, 2025
Fixes
- Form. The
getValue()method returns an empty string for a Combo option if its ID is specified as 0 (zero) - Grid.
comboFilterdisplays all the options even if itsfilterConfigconfiguration object is initialized without thefilterproperty - Grid. Incorrect date format in an exported Excel file
- Grid. The ability to specify a placeholder in the
inputFiltervia thefilterConfigconfiguration object is added - Tree. Incorrect dropping behavior when the
dropBehavior:siblingproperty is set in the Tree configuration
Version 9.2.3
Released on October 21, 2025
Fixes
- Grid. Performance issues caused by using
comboFilterin the Grid header while a large dataset is loaded - Grid. The issue with the "combobox" editor not closing on pressing the "Enter" button
Version 9.2.2
Released on October 1, 2025
Fixes
- Layout. The error that occurred on clicking the scrollbar in an attached List component
- Grid. Incorrect date format of exported columns with dates in some cases
- Tree. Performance issues in trees with deep nesting structure
Version 9.2.1
Released on September 1, 2025
Fixes
- DragManager. Incorrect determining of dragged items' ids while dragging multiple items
- Form. The
beforeChangeevent behavior in the Input and Textarea controls - Grid. The
BlockSelectionmodule behavior when using several Grids on a page - Grid. The issue with inserting data into inputFilter from the clipboard
- Grid. The parameter that defines the dragged item's drop position relative to the target item is added for the callback of drag-related events
- Grid. The problem with multiselection of rows outside the visible Grid area when the
dragModeoption is enabled - Grid. Displaying of boolean values in the grouped data
- Grid. Processing of invalid data for columns with the
numbertype - Grid. The processing of the grouped invalid data is improved
Version 9.2
Released on July 15, 2025
Review of the release on the blogBreaking changes
This version brings some updates in the use of the export module used for exporting Grid data to an Excel file. Check the Migration guide to keep in step with the latest updates.
New functionality
- Grid. The
RangeSelectionmodule is added to provide functionality for managing range selection in Grid (PRO version)- new Grid configuration property:
rangeSelection - new methods of the
rangeobject:disable(),enable(),getRange(),getRangedCells(),isDisabled(),isRanged(),resetRange(),setRange() - new events of the
rangeobject:afterResetRange,afterSetRange,beforeResetRange,beforeSetRange
- new Grid configuration property:
- Grid. The
BlockSelectionmodule is added to provide functionality for managing block selection in Grid (PRO version)- new Grid configuration property:
blockSelection - new methods of the
blockobject:disable(),enable(),isDisabled() - new events of the
blockobject:afterBlockHandleApply,afterBlockSelectionApply,afterBlockSelectionMove,beforeBlockHandleApply,beforeBlockSelectionApply,beforeBlockSelectionMove,blockHandleMouseDown,blockSelectionEnd,blockSelectionStart,blockSelectionValidate
- new Grid configuration property:
- Grid. The
Clipboardmodule is added to provide functionality for interacting with the clipboard in Grid (PRO version)- new Grid configuration property:
clipboard - new events of the
clipboardobject:afterCopy,afterPaste,beforeCopy,beforePaste,copyError,pasteError
- new Grid configuration property:
- Grid. The
DragPanelmodule is added to provide auxiliary functionality for moving rows in Grid and improve the drag-n-drop visualization (PRO version)- new Grid configuration property:
dragPanel - new events:
dragPanelItemClick,dragPanelItemMouseDown
- new Grid configuration property:
- Grid. The
Historymodule is added to provide functionality for managing the history of actions in Grid, including the Undo/Redo functionality (PRO version)- new Grid configuration property:
history - new methods of the
historyobject:add(),canRedo(),canUndo(),disable(),enable(),isDisabled(),getHistory(),redo(),remove(),removeAll(),undo() - new events of the
historyobject:afterAdd,afterRedo,afterUndo,beforeAdd,beforeRedo,beforeUndo,error
- new Grid configuration property:
- Grid. The
isSelected()method is added for theSelectionmodule to check whether the specified cell is selected
Updates
- Grid. The logic and appearance of the drag-n-drop functionality is improved. Check the related sample
- Grid. The export to Excel functionality is updated. The Json2Excel module is now used for exporting Grid data to Excel. Check the Migration guide for details
- Grid. The
xlsx()method of the Export module gets two new configuration settings:tableName- to set the name of a sheet with grid data in the Excel filedateFormatMask- to set the date format mask for Excel
- Grid. The possibility to use keyboard navigation for selecting ranges of cells. The following shortcut keys and their combinations are available:
| ArrowUp | resets the selected range and moves the focus to the previous vertical cell, setting the initially selected cell if no selection is active |
| ArrowDown | resets the selected range and moves the focus to the next vertical cell, setting the initially selected cell if no selection is active |
| ArrowLeft | resets the selected range and moves the focus to the previous horizontal cell, setting the initially selected cell if no selection is active |
| ArrowRight | resets the selected range and moves the focus to the next horizontal cell, setting the initially selected cell if no selection is active |
| Shift+ArrowUp | extends the selected range from the current initial cell to the previous vertical cell |
| Shift+ArrowDown | extends the selected range from the current initial cell to the next vertical cell |
| Shift+ArrowLeft | extends the selected range from the current initial cell to the previous horizontal cell |
| Shift+ArrowRight | extends the selected range from the current initial cell to the next horizontal cell |
| Ctrl+ArrowUp | resets the selected range and moves the focus to the first vertical cell |
| Ctrl+ArrowDown | resets the selected range and moves the focus to the last vertical cell |
| Ctrl+ArrowLeft | resets the selected range and moves the focus to the first horizontal cell |
| Ctrl+ArrowRight | resets the selected range and moves the focus to the last horizontal cell |
| Ctrl+Shift+ArrowUp | extends the selected range to the first vertical cell |
| Ctrl+Shift+ArrowDown | extends the selected range to the last vertical cell |
| Ctrl+Shift+ArrowLeft | extends the selected range to the first horizontal cell |
| Ctrl+Shift+ArrowRight | extends the selected range to the last horizontal cell |
The following shortcut key and mouse combination is available:
| Shift + click | sets the end cell of the range, extending the selection from the current initial cell |
The following shortcut key is available when the editable mode is set for the Grid component and the BlockSelection module is used in the "range" mode:
| Delete | allows clearing the selected cells |
Fixes
- DragManager. Incorrect determining the position for dropping an element during the Drag&Drop operation (child elements) in the TreeGrid mode
- DragManager. The issue with moving a line to the header/footer area
- DragManager. The problem with determining the position for dropping above the first element
- DragManager. The issue associated with the absence or incorrect definition of the drop position for the default mode
- DragManager. The issue with the
dragInevent (the previous reset state was transmitted) - DragManager. The
dragIn/dragOutevents are optimized (false positives are removed) - Grid. The issue with falsy selection of fixed cells while selecting unfrozen cells
- Grid. The issue with dragging unselected items
- Grid. Sorting of the Date string (ISO) values results in the invalid format error
- Grid. Export. Double quotes in the cell value are escaped in the exported Excel
- Grid. The issue with editor closing and saving the entered value on scrolling the grid
- Grid. The
draggable:falsesetting of a column affects the drag-n-drop of rows - Grid. The error that occurred when the value of the
parentproperty was set as a number
New samples
Grid
- Grid (TreeGrid). DragPanel. Initialization
- Grid. BlockSelection in the "range" mode. Selection with restricted columns
- Grid. BlockSelection. Work with the handle configuration
- Grid. BlockSelection. Styling (custom CSS)
- Grid. Clipboard with notifications (messages)
- Grid. Clipboard. Custom copy/cut/paste for number and date columns
- Grid. Clipboard. Copy/сut/paste between grids with validation
- Grid. Clipboard between two Grids with modifiers
- Grid. Clipboard between Grid and Spreadsheet
- Grid. History. Configuration
- Grid. History. Adding a custom action
Version 9.1.6
Released on June 23, 2025
Fixes
- Chart. The issue with displaying of the Treemap chart with groups
- Grid. The
cellValueparameter of the columntemplateproperty has different values depending on whether a column is editable - Grid. The issue with the tooltip showing in case of a custom HTML content taking the full cell's space
- Grid. The
textareaeditor saves changes made in a cell on closing instead of rendering the initial value
Version 9.1.5
Released on June 5, 2025
Fixes
- DataCollection/TreeCollection. Fixed the
sort()method in thesmartSortingmode when sorting by more than three parameters - Grid. The
multiselect/selecteditor passes the id instead of the value, while exporting data to an .xslx file - Grid. Sorting by the third column disregards the prior two-column sort order
Version 9.1.4
Released on June 3, 2025
Fixes
- Grid. A critical error during cell re-editing after unmounting the component
- Grid. The value is not saved during manual editing of DateEditor
- Grid. The issue with group headers rendering the ids instead of values
- Grid. The localization issue
- Grid. Incorrect displaying of a Japanese (Kanji/Kana) text without spaces in a single cell
- Grid. Issues in the functionality of the
autoHeightconfiguration property - Grid. Incorrect work of the
adjustproperty of a column - Layout. A console error on collapsing the first cell
- TreeCollection. Reloading data after component initialization
Version 9.1.3
Released on April 3, 2025
Fixes
- DataCollection. The issue with XMLDriver failing with string parameters
- Form. Updating the input properties will set the default input width, if a different width value hasn't been specified
- Grid. Incorrect export of values containing CRLF, double quotes and commas to CSV
- Grid. Resizing of columns with the enabled
rightSplitoption hides the resized column - Grid. A script error that occurs on hovering over a group element after going outside the component while dragging a group
- Grid. The column summary isn't calculated if the grid has been initialized in the collapsed mode
Version 9.1.2
Released on March 17, 2025
Fixes
- Chart. The default CSS classes aren't applied to the series of the
splineAreachart type - Combobox. Incorrect calculation of the popup position on filtering options
- Grid. Impossibility to set the left border for the first cells
- Grid. Incorrect displaying of a row dragged by the frozen part
- Grid. The script error that occurred while hovering over a span in the "tree" mode
- TreeCollection. The
movemethod doesn't move child elements of an item between collections - TreeCollection. After moving elements in
_orderthere are duplicates of moved elements
Version 9.1.1
Released on February 24, 2025
Fixes
- Combobox. Adding a new option in the "multiselection" mode opens the popup list
- Form. The problem with updating the value of the
preMessageproperty of the Textarea control - Grid. After editing grouped data with the
adjust:trueoption in the Grid configuration, the adjustable cell width is reset on ungrouping data - Grid. The issue with using a sub-row when the
dhx.scrollViewConfig.enableconfiguration option is set to true - Grid. An error caused by the use of options containing commas in the "combobox" editor
- Grid. Incorrect calculation of the row
autoHeight, if the length of a word in a cell exceeds the column width
Version 9.1
Released on February 18, 2025
Review of the release on the blogBreaking changes
This version brings some updates in the API methods. Check the Migration guide to keep in step with the latest updates.
New functionality
DataCollection/TreeCollection
- The new
getSortingStates()method to get the current state of data sorting (including sorting by multiple columns)
Grid
- Row expander with the possibility to insert any Suite widget or HTML content (PRO version)
- new Grid configuration property:
subRow - new Grid configuration property:
subRowConfig - new method:
getSubRow()
- new Grid configuration property:
- Multi-sorting functionality that allows sorting Grid by several columns (PRO version)
- new Grid configuration property:
multiSort
- new Grid configuration property:
Fixes
- DataCollection/TreeCollection. The
sort()method called without arguments doesn't reset the applied sorting - Grid. Falsy firing of data events on row drag-n-drop
- Grid. The issue with a gap appearing while calculating
autoHeightof a cell - Toolbar. Incorrect menu items positioning
- TreeCollection. The
restoreOrder()method doesn't reset the applied sorting
New demo on backend integration
New samples
Grid
- Row expander. Full config
- Row expander. Subgrid data loading
- Row expander. Subgrid events handling
- Row expander with Form (any Suite widget can be embedded)
- Row expander with Chart (any Suite widget can be embedded)
- Row expander. Subgrid with Pagination
- Row expander. Multi-level nested subgrids
- Row expander. Custom HTML and hiding toggle icon
- Row expander. Subgrid with rows expanded by criteria
- Row expander. Subgrid only in specific rows
- Sorting by multiple columns (multisorting)
- Grouping with sorting by multiple columns (multisorting)
- Grouping and template in group headers
- Search and highlight results
- Hiding columns using header context menu
- Empty state
- Row pinning with checkbox
- Dynamic calculations
- Dataview editor for second column
- Custom yes/no editor
- Additional details in second grid (linked grids)
- Readonly (disabled) rows
- Rotated (vertical) header
- Grid and Pivot. Integration
Version 9.0.4
Released on February 4, 2025
Fixes
- Core. Incorrect work of
numberMaskused with theallowNegativeproperty on initialization of components - Grid. An issue with ignoring the
maxWidthproperty specified for a column - Window. An issue with restoring of embedded views (Grid scroll)
Version 9.0.3
Released on January 13, 2025
Fixes
- Chart. Chart bars aren't displayed if the series have the same value
- Chart. A stacked bar isn't rendered if a data object for some series doesn't contain a value
- Grid. Sorting the header "selectFilter"/"comboFilter" options with numeric data in the "number" column type
- Grid. Dragging a child item to the parent item in the TreeGrid mode
Version 9.0.2
Released on December 23, 2024
Fixes
- Grid. The
inputeditor doesn't work whenselection:"row"is specified - Grid.
autoEmptyRowcreates an additional empty row on loading external data
Version 9.0.1
Released on December 10, 2024
Fixes
- Core. The issue with the local trial package during import to frameworks
- DataCollection. Adding multiple elements at index -1 will distribute the elements throughout the collection
- DataCollection. The
find()/findAll()method miss theindexandarrayarguments, when the parameter is set as a function - DataCollection. The
add()method mutates the added object - DataCollection. Data preparation in the config is removed (old realization)
- DataCollection. After parsing the grouped data, the old data is displayed
- Form. The issue with the destruction of items in Optimus
- Grid. Multiselection. Reselection of the first selected row doesn't work
- Grid. The export module typization is added
- Grid. The use of
footerAutoHeightwithsummarycauses an error - Message. Incorrect text wrapping
- Tree. Selection isn't applied after dragging an item to another Tree
- TreeCollection. The
smartSortingproperty is missed in the configuration of thesort()method - TreeCollection. The
filter()method allows specifying an invalid configuration - TreeCollection. The
move()method calculates the movements incorrectly when moving an array of elements - TreeCollection. The
move()method doesn't allow being called without additional arguments - TreeCollection. The ability to create a non-existent parent
Version 9.0
Released on November 25, 2024
Review of the release on the blogBreaking changes
In this version TreeGrid becomes a part of Grid. Check the Migration guide to keep in step with the latest updates.
New functionality
Common features
- The new helper method
dhx.methodsto define the default data calculation functions used by the library and redefine them to create custom functions
DataCollection
- The ability to group data items, aggregate data in a group, adjust the order and configuration of data grouping, render statistics in the summary rows
- new methods:
group(),ungroup(),isGrouped() - new events:
beforeGroup,afterGroup,beforeUnGroup,afterUnGroup
- new methods:
Form
- The ability to specify patternMask/numberMask for the Input and Textarea controls
- The new
getText()method for getting the text value of an input - The new
getText()method for getting the text value of a textarea
Grid
- The TreeGrid mode for Grid (PRO version)
- Row data grouping (PRO version) with the ability to aggregate data in a group, adjust the appearance, order and configuration of data grouping, render statistics in the summary rows
- new Grid properties:
group,groupable,closable - new column properties:
groupable,closable - new events:
groupPanelItemClick,groupPanelItemMouseDown
- new Grid properties:
- The ability to render custom statistics in the header/footer of columns and Grid spans
- the
textandtooltipTemplateproperties of a column and of the Gridspansconfiguration object can be set as callback functions to render calculated summary values - new Grid property:
summary - new method:
getSummary() - new column property:
summary
- the
- The ability to specify patternMask/numberMask for columns
- Localization for Grid labels is added
Updates
Grid
- The
asDateObjectproperty is added for theeditorConfigobject of the DatePicker column editor to provide the ability to work with a Date object as with a string - The
cellparameter is added for the callback function of the following events:headerCellClick,footerCellClick,headerCellMouseOver,footerCellMouseOver,headerCellMouseDown,footerCellMouseDown,headerCellDblClick,footerCellDblClick,headerCellRightClick,footerCellRightClick Ctrl+Entershortcut for expanding/collapsing the parent item in the TreeGrid mode
Fixes
- Grid. Rows layout break when the minimum column width is reached with more than one parent (
type: tree) - Grid. The TypeScript types issue of the constructor object
- Grid. The unrecognized format error that occurs when working with a Date object in string representation
New samples
- Grid. Grouping
- Grid. Grouping customization
- Grid. Grouping aggregated data via data collection
- Grid. Grouping missing data
- Grid. Grouping and totals in the summary row
- Grid. Grouping and totals in group headers
- Grid. Grouping and totals in group headers via data collection
- Grid. Grouping and totals in the summary row via data collection
- Grid. Custom totals for footer and columns
- Grid. Custom totals for footer and columns with dynamic updates on edit
- Grid. Pattern and number masks
- Form. Number mask
- Form. Pattern mask
Version 8.4.6
Released on October 15, 2024
Fixes
- Grid. The issue with opening the Combobox column editor without options