Using libcompiler and dataprocessor issue

Hi,
i have a problem: yesterday i have updated dhtmlx in my project usic libcompiler(dhtmlx version is the same 3.6) and now when i update or insert a row in my treegrid, with enableDataNames option set to true, i have this parameters in post request:

7_1380618832352_gr_id=7_1380618832352&7_1380618832352_gr_pid=7&7_1380618832352_titolo=Punteggio&7_1380618832352_ext_code=answer_points&7_1380618832352_n97_id_dominio=&7_1380618832352_v98_default=&7_1380618832352_v98_tipo_parametro=TT&7_1380618832352_n98_visualizza_consuntivo=1&7_1380618832352_n98_ordine=12&7_1380618832352_!nativeeditor_status=inserted&ids=7_1380618832352

i see that 7_1380618832352 is row id (7 is parent id and 1380618832352 is a timestamp, i generated this id when user add a row)

 treeGrid.addRow(selectedId+"_"+newId,["nuovo parametro","","","","",0,(num_figli+1)],null,selectedId);

can you help me? how i can get only id of my colum and not [id_row]_[id_colum]
here is my code:

[code]window.dhx_globalImgPath=“./js/dhtmlxsuite/imgs/”;
var Mainlayout;
var mainCell;
var treeGrid;
var urlServlet = “Domande”;
var id_colonna_dominio = “n97_id_dominio”;
var id_colonna_titolo = “titolo”;
var id_colonna_ext_code = “ext_code”;
var id_colonna_ordine = “n98_ordine”;
var id_colonna_tipo_parametro = “v98_tipo_parametro”;
var skin = “dhx_skyblue”;
var dp_tree_grid;
var menu;
var id_menu_domande_delete = “domande_delete”;
var id_menu_parametro_delete = “parametro_delete”;
var id_menu_domande_new = “domande_new”;
var id_menu_parametro_new = “parametro_new”;
var domanda_cancellazione_domande = “Si sta per cancellare una domanda, sei sicuro?”;
var domanda_cancellazione_parametro = “Si sta per cancellare un parametro, sei sicuro?”;
/*

  • Funzione che inizializza tutto
    con 1 secondo di ritardo per far ridimensionare in modo corretto il div che conterrà tutto

/
function init()
{
dhxLayout = new dhtmlXLayoutObject(“parentId”, “1C”, “dhx_blue”);
mainCell = dhxLayout.cells(“a”);
mainCell.hideHeader();
/

La struttura del layout sar:
1) in alto il filtro che funziona sia per lo scheduler che per la lista degli interventi
2) sotto due tab che contengono due layout da una cella ciascuno
a) Scheduler
b) Grid Lista interventi
*/
init_menu();
init_tree_grid();
}

function init_tree_grid()
{
treeGrid = mainCell.attachGrid();
treeGrid.enableUndoRedo();
treeGrid.enableDragAndDrop(true);
treeGrid.setDragBehavior(“sibling”);
treeGrid.attachEvent(“onRightClick”, function(id,ind,obj){
return false;
});
treeGrid.attachEvent(“onRowSelect”, function(id,ind){
if(!isEmpyNullString(treeGrid.getParentId(id)))
{
// è un parametro
menu.setItemDisabled(id_menu_domande_delete);
menu.setItemEnabled(id_menu_parametro_delete);
menu.setItemDisabled(id_menu_parametro_new);

	}
	else
	{
		// è una domanda
		menu.setItemEnabled(id_menu_domande_delete);
		menu.setItemDisabled(id_menu_parametro_delete);
		menu.setItemEnabled(id_menu_parametro_new);
	}
});
treeGrid.attachEvent("onDrag", function(sId,tId,sObj,tObj,sInd,tInd){
	if(!isEmpyNullString(treeGrid.getParentId(sId)))
	{
		if(treeGrid.getParentId(sId)==treeGrid.getParentId(tId))
		{
			var ordine_di_partenza = parseInt(treeGrid.cells(sId,treeGrid.getColIndexById(id_colonna_ordine)).getValue());
			var ordine_di_arrivo = parseInt(treeGrid.cells(tId,treeGrid.getColIndexById(id_colonna_ordine)).getValue());
			if(ordine_di_arrivo > ordine_di_partenza)
			{
				treeGrid.cells(sId,treeGrid.getColIndexById(id_colonna_ordine)).setValue(ordine_di_arrivo);
				treeGrid.cells(tId,treeGrid.getColIndexById(id_colonna_ordine)).setValue((ordine_di_arrivo-1));
				dp_tree_grid.setUpdated(tId,true);
			}
			else
			{
				
				var lista_id_figli = treeGrid.getSubItems(treeGrid.getParentId(tId)).split(",");
				for (var i=0;i<lista_id_figli.length;i++)
				{
					var ordine_temp = parseInt(treeGrid.cells(lista_id_figli[i],treeGrid.getColIndexById(id_colonna_ordine)).getValue());
					if(ordine_temp==(ordine_di_arrivo+1))
					{
						treeGrid.cells(lista_id_figli[i],treeGrid.getColIndexById(id_colonna_ordine)).setValue((ordine_temp+1));
						dp_tree_grid.setUpdated(lista_id_figli[i],true);
						break;
					}
				}
				treeGrid.cells(sId,treeGrid.getColIndexById(id_colonna_ordine)).setValue((ordine_di_arrivo+1));
			}				
			return true;
		}
		else
			return false;	
	}
	else
		return false;
	
});

init_dataprocessor_treegrid();

treeGrid.setSkin(skin);
treeGrid.kidsXmlFile=urlServlet+"?action=caricaDomande";
treeGrid.attachEvent("onXLS", function(grid_obj){mainCell.progressOn();}); 
treeGrid.attachEvent("onXLE", function(grid_obj){mainCell.progressOff();});
treeGrid.attachEvent("onRowDblClicked", function(rId,cInd){
	if(!isEmpyNullString(treeGrid.getParentId(rId)) && treeGrid.getColumnId(cInd) == id_colonna_dominio)
	{
		// Se sono su di un figlio e cerco di fare doppio click sul dominio non faccio succedere niente
		// Il dominio è legato solo alla domanda
		return false;
	}
	
	if(isEmpyNullString(treeGrid.getParentId(rId)) && (treeGrid.getColumnId(cInd) != id_colonna_dominio && treeGrid.getColumnId(cInd) != id_colonna_titolo && treeGrid.getColumnId(cInd) != id_colonna_ext_code))
	{
		// Se sono su di un padre
		// e clicco sulle colonne di un parametro non faccio fare niente
		return false;
	}
	return true;
});  
treeGrid.loadXML(urlServlet+"?action=caricaDomande");

}

function init_dataprocessor_treegrid ()
{
dp_tree_grid = new dataProcessor(urlServlet);
dp_tree_grid.init(treeGrid);
dp_tree_grid.setVerificator(treeGrid.getColIndexById(id_colonna_dominio));
dp_tree_grid.setVerificator(treeGrid.getColIndexById(id_colonna_titolo));
dp_tree_grid.setVerificator(treeGrid.getColIndexById(id_colonna_ext_code));
dp_tree_grid.setVerificator(treeGrid.getColIndexById(id_colonna_tipo_parametro));
dp_tree_grid.enableDataNames(true);
dp_tree_grid.attachEvent(“onAfterUpdate”, function(sid, action, tid, tag){
if(tag.getAttribute(“type”).indexOf(“ERRORE_”)==-1)
dhtmlx.message(tag.getAttribute(“message”));
else
{
if(!isEmpyNullString(treeGrid.getUndo()))
treeGrid.doUndo();
dhtmlx.alert(tag.getAttribute(“message”));
}

});
dp_tree_grid.attachEvent("onBeforeUpdate",function(id,status, data){
	  //any custom code
	  mainCell.progressOn();
	  return true;
	});
dp_tree_grid.attachEvent("onFullSync",function(){
	//any custom code
	   mainCell.progressOff();
	  return true;
	});	

}

function init_menu ()
{
menu = mainCell.attachMenu();
menu.setSkin(skin);
//menu.attachEvent(“onXLS”, function(){mainCell.progressOn();});
//menu.attachEvent(“onXLE”, function(){mainCell.progressOff();});
menu.loadXML(urlServlet+“?action=getMenu”, function(){
menu.attachEvent(“onClick”, function(id, zoneId, casState){
var newId = (new Date()).valueOf();
var selectedId=treeGrid.getSelectedRowId();
if(id==id_menu_domande_delete)
{
if(confirmMessage(domanda_cancellazione_domande))
treeGrid.deleteSelectedRows();
else
return false;
}
else if(id == id_menu_domande_new)
{
dp_tree_grid.setVerificator(treeGrid.getColIndexById(id_colonna_dominio));
dp_tree_grid.clearVerificator(treeGrid.getColIndexById(id_colonna_tipo_parametro));
treeGrid.addRow(newId,“nuova domanda”);
}
else if(id == id_menu_parametro_new)
{
var num_figli = 0;
if(!isEmpyNullString(treeGrid.getSubItems(selectedId)))
{
num_figli = parseInt((treeGrid.getSubItems(selectedId).split(“,”)).length);
if(isNaN(num_figli))
num_figli = 1;
}

			 dp_tree_grid.clearVerificator(treeGrid.getColIndexById(id_colonna_dominio));
			 dp_tree_grid.setVerificator(treeGrid.getColIndexById(id_colonna_tipo_parametro));
			 treeGrid.addRow(selectedId+"_"+newId,["nuovo parametro","","","","",0,(num_figli+1)],null,selectedId);
			 treeGrid.openItem(selectedId);
		 }
		 else if(id == id_menu_parametro_delete)
		 {
			 if(confirmMessage(domanda_cancellazione_parametro))
			 	treeGrid.deleteSelectedRows();
			 else
				 return false;
		 }
		 return true;
	 });
});

}

function confirmMessage (domanda)
{
return confirm(domanda);
}

setTimeout(“init()”,1000);[/code]

add after dp.init one more line

dp_tree_grid.init(treeGrid); dp_tree_grid.setTransactionMode("POST", false);

The change in behavior can be caused by including connector.js in the result file. ( connector.js switches default mode of dataprocessor to connector-compatible one )

You are right. :slight_smile:
Thank you.