Dhtmlx TreeGrid cell setValue Performance issue.


I have a customer requirement where users can edit values in treegrid cells and
the editing is propagated to child rows in my treegrid hierarchy, As my requirement is such that user can edit parent node cell in tree hierarchy without expanding all child rows and the same cell will change according to parent row cell adjustment

grid.cells(rowIndex, columnIndex).setValue(newValue, className)

[code]function eXcell_demand(cell) {
if (cell) {
this.cell = cell;
this.grid = this.cell.parentNode.grid;

this.getValue = function () {
	return this.cell.firstChild.textContent;
this.setValue = function (val, eClass) {
	if (eClass) {
		this.setCValue("<span>" + val + "</span><span class='pull-right'><i class='" + eClass + "'></i></span>", val);
		this.setCValue("<span>" + val + "</span>", val);

eXcell_demand.prototype = new eXcell;[/code]

I have my custom formatter(eXcell_demand).
For small adjustments it is working fine but when i have thousands of rows with multiple hierarchy levels and if user edit large number of cells
the grid load performance is decreased tremendously now its takes 30-40 seconds more (5K cell adjustments) than to load the same grid without adjustments on cell
I have enabled smart rendering.
my observation is that setValue takes more time when a row is hidden and setValue called on one of the cells for the first time.as edit performance is good for subsequent edits on the same cells

Is there any better way to handle this scenario.


Please, try to place all your setValue() method callings in the FAST mode:
grid.startFastOperations(); //starts “FAST” mode
//make grid operations between start and stop commands
grid.stopFastOperations();//stops “FAST” mode(all events skipped between start and stop

I will try this