根据EasyUI官网Demo,datagrid可编辑必须扩展。
//datagrid 扩展
$.extend($.fn.datagrid.methods, {
editCell: function(jq,param){
return jq.each(function(){
var opts = $(this).datagrid('options');
var fields = $(this).datagrid('getColumnFields',true).concat($(this).datagrid('getColumnFields'));
for(var i=0; i<fields.length; i++){
var col = $(this).datagrid('getColumnOption', fields[i]);
col.editor1 = col.editor;
if (fields[i] != param.field){
col.editor = null;
}
}
$(this).datagrid('beginEdit', param.index);
for(var i=0; i<fields.length; i++){
var col = $(this).datagrid('getColumnOption', fields[i]);
col.editor = col.editor1;
}
});
}
});
var editIndex = undefined;
function endEditing(tname){
if (editIndex == undefined){return true}
if ($('#'+tname).datagrid('validateRow', editIndex)){
$('#'+tname).datagrid('endEdit', editIndex);
editIndex = undefined;
return true;
} else {
return false;
}
}
function myClickCell(index, field,tname){
if(tname==null) return;
if (endEditing(tname)){
$('#'+tname).datagrid('selectRow', index)
.datagrid('editCell', {index:index,field:field});
editIndex = index;
}
}
在datagrid :
onClickCell:function onClickCell(index, field){
myClickCell(index, field,'table');
}
columns:[[
....
{ field: 'stel', title: '电话', width: 120,align: 'center',editor:'text'}
]],
onBeforeEdit:function(index,row){
row.editing = true;
$('#table').datagrid('updateRow', {index:index,row:{}});
},
onAfterEdit:function(index,row){
row.editing = false;
$('#table').datagrid('updateRow', {index:index,row:{}});
},
onCancelEdit:function(index,row){
row.editing = false;
$('#table').datagrid('updateRow', {index:index,row:{}});
}