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');
}
});
}
}