Hi. I am upgrading from 1.4 to 1.6. I have code to add a new row, send update to server to get a new id, change rowId of the new row from the update and do an updatefromxml to get data necessary for a new row. This is now broken.
CODE Below…
function addNewRow() {
var newId = “New:” + Date.parse(new Date());
mygrid.addRow(newId)
mygrid.setUserData(newId,“new”,“1”);//mark row as NEW
mygrid.cells(newId,1).setValue( orderId);
sendServerCellUpdateRequest(newId);
lastrow = mygrid.rowsCol.length - 1;
mygrid.changePage(99);
mygrid.selectRow(lastrow, false, false);
};
//send server request for upating/creating row
function sendServerUpdateRequest(rId){
var rowValuesAr = getCellsArray(rId);
if(mygrid.getUserData(rId,“new”)==“1”){
var action = “add”;
}
var url = actionURL+"?do="+(!action?“update”:action)+"&id="+rId+"&values="+rowValuesAr.join("|");
rowUpdater.loadXML(url+"&un="+Date.parse(new Date()));
};
cellUpdater = new dtmlXMLLoaderObject(doUpdateCell,window, false);
function doUpdateCell() {
var root = cellUpdater.getXMLTopNode(“status”);
var oldId = root.getAttribute(“oldid”)
var rowId = root.getAttribute(“rowid”)
mygrid.setRowId(mygrid.getRowIndex(oldId), rowId)//set new row id (if it was chnaged for new row)
mygrid.setRowTextNormal(rowId);
mygrid.setUserData(rowId, “changed”, “0”)
mygrid.setUserData(rowId, “new”, “0”)
mygrid.updateFromXMLSync(loadDataURL + “&rowId=” + rowId);
}
}
!!!Below is broken, I am getting r has no properties…How can I get to the new row that was added.
mygrid.setRowId(mygrid.getRowIndex(oldId), rowId)//set new row id (if it was chnaged for new row)
Thanks
Peter Ang
lastrow = mygrid.rowsCol.length - 1;
This code may return incorrect result, the grid has native method
lastrow = mygrid.getRowsNum()-1;
it will return correct result in any mode ( including paging and SRND )
Please try to replace
mygrid.setRowId(mygrid.getRowIndex(oldId), rowId)
with
mygrid.changeRowId(oldId,rowId);
The setRowId may work incorrectly in case of SRND|paging mode - the issues already fixed in inner build, and will be released as part of oncoming update