3.2.0

Refresh after setRowProperty("count") causes error in IE

Hi,

Im using 1.0. I made a function to delete rows:
function dataGrid_deleteRows(oDatagrid, aDatagridData)
{   
  selectedRows = oDatagrid.getSelectionProperty("values"); //get selected rows
  
  for (i=selectedRows.length-1; i>=0; i--) //delete rows, starting by the last selected row
  {      
    aDatagridData.splice(selectedRows[i], 1)
  }
  
  oDatagrid.setRowProperty("count", aDatagridData.length);  //set new row count
  oDatagrid.refresh(); //refresh the table
  oDatagrid.setSelectionProperty("index", null);  //clear selection
}


which works fine in FF, but is causing trouble in IE6. In IE i get a error about aDatagridData, which doesnt exist according to IE.

When i remove

oDatagrid.setRowProperty("count", aDatagridData.length);


the script works fine, but I have to use this function in order to get the desired functionality.

Anybody an idea how to fix?
Rekcor
August 26,
Maybe using a new var ?
function dataGrid_deleteRows(oDatagrid, aDatagridData) 
{    
  selectedRows = oDatagrid.getSelectionProperty("values"); //get selected rows 

   var ERASED = 0;

  for (i=selectedRows.length-1; i>=0; i--) //delete rows, starting by the last selected row 
  {       
    aDatagridData.splice(selectedRows[i], 1) 
ERASED ++
  } 
   
  oDatagrid.setRowProperty("count", aDatagridData.length - ERASED );  //set new row count 
  oDatagrid.refresh(); //refresh the table 
  oDatagrid.setSelectionProperty("index", null);  //clear selection 
}
Carlos
August 26,
Thanx, but that doesn't work, as aDatagridData.length is the length of the array in

oDatagrid.setRowProperty("count", aDatagridData.length - ERASED );  //set new row count


so (aDatagridData.length - ERASED) is too short.

The very strange thing is that

oDatagrid.setRowProperty("count", aDatagridData.length [b]- 1[/b]);  //set new row count 
  oDatagrid.refresh(); //refresh the table


works in IE, but not in FF.

In FF, the last element of the array is deleted as well, which is logical, because I'm saying to the script the aDatagridData's length is 1 shorter than its actual size...
Rekcor
August 26,
mmm... and dont work inside a [ code ] tag here
Rekcor
August 26,
:lol:

what i meant to say: the bold tag doesnt work inside of the code tag, so it should be:

"The very strange thing is that

oDatagrid.setRowProperty("count", aDatagridData.length - 1);  //set new row count 
  oDatagrid.refresh(); //refresh the table


works in IE, but not in FF.

In FF, the last element of the array is deleted as well, which is logical, because I'm saying to the script the aDatagridData's length is 1 shorter than its actual size..."
Rekcor
August 26,
I found out!

The fault was in my aDatagridData. The first time the table grid is filled with data goes like this

ar testlijst_data = [
["80", "Cardamine lyrata", "5 cm post", "13", "4.35", "0", "0"],
["170", "Hygrophyla stricta tai", "5 cm pot", "24", "1.9", "0", "0"],
];


The last comma (,) was the killer in this case

aArray = [1,2,3,]
alert (aArray.length) //will display 3 in FF, 4 in IE

bArray = [1,2,3]
alert (bArray.length); //will display 3 in both FF and IE


Thanx anyway!
Rekcor
August 26,

This topic is archived.

See also:


Back to support forum