有時候前台完成某個操作后要修改datagrid的值, 也許這個datagrid是沒有保存的, 所以要修改后才能傳遞到后台; 也許要其他操作過后才需請求后台; 這些情況都需要前台對datagrid的單元格進行修改操作:
假設我們有一個” staffLogDetailGrid”的datagrid;
// 得到columns對象 var columns = $('#dg').datagrid("options").columns; // 得到rows對象 var rows = $('#dg').datagrid("getRows"); // 這段代碼是// 對某個單元格賦值 rows[lastIndex][columns[0][5].field]=新的值; // 刷新該行, 只有刷新了才有效果 $('#dg').datagrid('refreshRow', lastIndex);
如果該行處於"行編輯"狀態, 如果直接調用"refreshRow"方法. 會報data is undefined這個錯; 需要先調用"endEdit", 再調用"refreshRow", 最后調用"selectRow"和"beginEdit"這兩個方法便可了; 一定要先關閉行編輯才能刷新, 不然要報錯的...這個問題搞了我很久額...代碼如下:
$('#dg').datagrid('endEdit', lastIndex).datagrid('refreshRow', lastIndex).datagrid('selectRow', lastIndex).datagrid('beginEdit', lastIndex);
還有一種方法可以進行單元格的編輯: 如下
已知行坐標為lastindex;
var row = $('#dg').datagrid("selectRow", lastIndex).datagrid("getSelected"); row.gzsj = getNowDate(); console.info(row); $('#dg').datagrid('updateRow', row);