jqgrid⾏内修改单元格内容
由于字段较多,但可供⽤户修改的字段仅有⼀个,所有不想通过弹出对话框的⽅式让⽤户进⾏修改。还好jqgrid⽀持⾏内数据修改,⾸先要将cellEdit设为true以⽀持对单元格的修改操作。这⾥讲cellsubmit设为clientArray,当修改完成后并不直接发送到服务器进⾏保存,⽽是先保存在table中,当⽤户点击保存按钮是才向数据库发送请求更新数据。
cellEdit: true,
cellsubmit: "clientArray", //当单元格发⽣变化后不直接发送请求、"remote"默认直接发送请求
要修改的字段是select类型:
{name:'YCFWZT',index:'YCFWZT', width:80,align:"center",sortable:false,formatter:'select', formatoptions:{value:{1:'正常', 2:'维修', 3:'常⽤'}}, editable:true,edittype:'select',editoptions:{value:{1:'正常', 2:'维修', 3:'常⽤'}}},
这⾥有⼀个问题,就是当⽤户修改该字段后直接进⾏保存操作,由于修改后的数据未保存到table中,⽽且原数据丢失,会导致字段为空。所以要先设法使被编辑的单元格失去焦点,数据即可保存到本地table中。这⾥当⽤户点击保存按钮后⾸先让每⾏的第⼀个字段获取焦点,这样数据就会得到保存,然后进⾏保存操
作:
$("#list2").editCell(rowid, 1, true);
onSelectRow: function(id){
if(id && id!==lastsel2){
jQuery('#detailStatisticsTab').jqGrid('saveRow',lastsel2); //$('#detailStatisticsTab').restoreRow(lastsel2);
jQuery('#detailStatisticsTab').jqGrid('editRow',id,true); //jQuery('#gridid').editRow(id, true);
lastsel2=id;
}
}
jqGrid重置
$('#detailStatisticsTab').trigger("reloadGrid"); // 重新载⼊
jqGrid遍历所有⾏
var rowIds = $("#detailStatisticsTab").jqGrid('getDataIDs');
var paraArr = [];
for(var i=0,j = rowIds.length - i;i < j; i++)
{
jquery修改html内容var rowData = $("#detailStatisticsTab").jqGrid('getRowData',rowIds[i]);
var MC_STATE_NAME = rowData.MC_STATE_NAME;
var MC_STATE = rowData.MC_STATE;var param = {
MC_ID: rowData.MC_ID,
MC_STATE: MC_STATE
};
/
/paraArr.push(param);
paraArr.push(JSON.stringify(param));
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论