1、首先在datagrid中写双击方法,如图: 2、实现双击行方法(onDblClickCell),结束编辑方法(endEditing),单元格失去焦点执行的方法(onAfterEdit) var editIndex = undefined; var insertRowIndex;
//结束编辑function endEditing() {//该方法用于关闭上一个焦点的editing状态 if (editIndex == undefined) { return true } if ($(’#datagrid’).datagrid(‘validateRow’, editIndex)) { $(’#datagrid’).datagrid(‘endEdit’, editIndex); editIndex = undefined; return true; } else { return false; } }
//开始编辑 function onDblClickCell(index,field,value) { if (endEditing()) { $(this).datagrid(‘beginEdit’, index); var ed = $(this).datagrid(‘getEditor’, {index:index,field:field}); // $(ed.target).focus(); editIndex = index; } }
//单元格失去焦点执行的方法 function onAfterEdit(index, row, changes) { var boolean = false; var updated = $(’#datagrid’).datagrid(‘getChanges’, ‘updated’); //获取新增行数据 if(updated.length < 1){ var rows = $("#datagrid").datagrid(“getRows”); row = rows[insertRowIndex];//新增行数据 }
var startTime = row.startTime != undefined ? row.startTime : ""; var endTime = row.endTime != undefined ? row.endTime : ""; if(startTime != "" || endTime != ""){ boolean = true; } if (!boolean) { editRow = undefined; $('#datagrid').datagrid('unselectAll'); return; } else { //保存 var url = '/rtoc/entity/RtocCheckWellNochecktime'; if(row.pkWellNochecktimeId != null && row.pkWellNochecktimeId != ""){ url += '/'+row.pkWellNochecktimeId } $.ajax({ url : url, type : 'POST', contentType : 'application/json', data : JSON.stringify(row), success : function(data){ $('#datagrid').datagrid('reload'); } }); }}