How to update value of data in jqgrid
Solution 1:
If you use loadonce: true
you should know where the local data will be hold by jqGrid. jqGrid has two options: data
and _index
. The data
is array of items where every item has the name property as the name
property of the columns from colModel
. If you need find the item by id (rowid) you can use _index[rowid]
to the the item with the rowid in the data
array. So to change the data in the column 'myColumn'
you should do the following:
// first change the cell in the visible part of grid
myGrid.jqGrid('setCell', rowid, 'myColumn', newValue);
// now change the internal local data
var dataArray = myGrid.jqGrid('getGridParam', 'data'),
indexes = myGrid.jqGrid('getGridParam', '_index');
dataArray[indexes[rowid]].myColumn = newValue;
UPDATED: You can use documented getLocalRow method to change the local data:
// first change the cell in the visible part of grid
myGrid.jqGrid('setCell', rowid, 'myColumn', newValue);
// now change the internal local data
myGrid.jqGrid('getLocalRow', rowid).myColumn = newValue;