How to update value of data in jqgrid

前端 未结 3 1869
清歌不尽
清歌不尽 2020-11-28 12:37

I\'m trying to update a cell in jqgrid permanently upon loading. I know I can use setCell but that only updates the value for that page. If I come back to the

3条回答
  •  天命终不由人
    2020-11-28 13:34

    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;
    

提交回复
热议问题