easyui行编辑实例:
关键字:双击开启行编辑,updateRow事件,endEdit事件,onAfterEdit事件
{field:'factCostAmount',title:'实收',width:100,
editor:{
type:'numberbox'
}
},
onDblClickRow:function(index,row){
if (endEditing()){//返回true则表示可以编辑(editIndex为undefined)
$(this).datagrid('beginEdit', index);//开启行编辑框
editIndex = index;
} else {
$('#datagrid-cost').datagrid('selectRow', editIndex);//选中索引为editIndex的行
}
//$(this).datagrid('beginEdit', index);//用此种方式直接开启行编辑,如果不点击关闭,开启另一行编辑框时,上一行不会自动关闭
},
onClickCell:function(index, field, value){
$(this).datagrid('endEdit', index);//关闭行编辑框
}
onAfterEdit:function(index, row, changes){//获取行编辑数据并动态计算
$('#datagrid-cost').datagrid('updateRow',{//只在页面更新
index: index,
row: {
costTotal: changes.factCostAmount*1.2
}
});
//可以直接取changes里的值保存
}
//结束行编辑
endEditing:function(){
//如果没有开启编辑的行,则可以编辑
if(editIndex == undefined){
return true;
}
//如果editIndex不等于undefined(editIndex已开启行编辑状态),则关闭当前行编辑状态
if($("#datagrid-cost").datagrid('validateRow',editIndex)){
$("#datagrid-cost").datagrid('endEdit',editIndex);
editIndex = undefined;
return true;
}else{
return false;
}
},
//保存数据(可以直接在onAfterEdit事件里保存数据)
saveAmount:function(){
var rows = $('#datagrid-cost').datagrid('getChecked');
if(rows.length < 1){
$.messager.alert('提示','请选 择需要保存实收的费用记录!');
return ;
}
/*关闭编辑框*/
$.each(rows,function(i,n){
var index = $('#datagrid-cost').datagrid('getRowIndex',n);
$('#datagrid-cost').datagrid('endEdit',index);//关闭此行的行编辑
});
var objNotNull = new Array();
$.each(rows,function(i,n){
if(n.factCostAmount != null && n.factCostAmount != ''){
objNotNull.push(n);
}
});
if(objNotNull.length<1){
$.messager.alert('提示','实收金额不能为空!');
return ;
}
$.ajax({//将本次实收金额传到后台
url:Config.sysUrl + '/fyMain/saveAmount',
data:{
costAmount:JSON.stringify(objNotNull)
},
type:'post',
dataType:'json',
success: function(result){
if(result.success){
$.messager.alert('提示',result.msg);
$('#datagrid-cost').datagrid('reload');
}
}
});
},