When a grid uses custom calculated columns, it is impossible to click on the save or cancel button directly from the editor of the calculated column
Refer to this codepen https://codepen.io/statler/pen/mvPOge
If you click the edit button and enter a normal column, the editor is shown. You can then change a value, and click directly on the save or cancel buttons. Editing is finished and the save/cancel buttons hidden.
If you do the same thing on a calculated column, the first click is ignored. This click seems to be used to close the editor. A second click is required to trigger the save or cancel.
Ignore the actual values I use, they of course make no sense. It is just the behaviour. The problem is the setCellValue event
DataGrid - Two clicks are registered to activate save/cancel buttons if a column with the calculateCellValue field is used
Answers approved by DevExpress Support
We have fixed the issue described in this ticket and will include the fix in our next maintenance update. To apply this solution before the official update, request a hotfix by clicking the corresponding link for product versions you require.
Note: Hotfixes may be unavailable for beta versions and updates that are about to be released.
Hi Dennis,
When you specify the setCellValue callback function of a column, dxDataGrid re-renders the entire data row after updating a cell in the column. That is why the first click does not work. We improved this behavior starting with 18.2 by adding the dxDataGrid.repaintChangesOnly option. If you enable this option, your grid will re-render only cells where values are changed. This functionality cannot be added to 18.1 because it will require significant changes that may break dxDataGrid. If possible, wait for the maintenance update with the hotfix in this ticket, install it on your machine and update your project. Then, enable the dxDataGrid.repaintChangesOnly option.
If you are not able to update your project for certain reasons and wish to use 18.1, please clarify why you need to use the setCellValue callback. Describe your final goal in greater detail. We will do our best to help you.
Thank you for your sample. I have reproduced this behavior and we are going to update this thread as soon as we have any news.