呵呵。。。
前台js:
///修改datagrid后保存修改到数据库
function save(obj, url) {
obj = $(obj);
//变化的行集合
var insertRows, updateRows, deleteRows;
var allRows = obj.datagrid('getRows');
var rowIndex;
var updateFlag = true;//判断新增、修改的行数据是否都合法,都合法为true,否则false
for (var i = 0; i < allRows.length; i++) {
if (!obj.datagrid('validateRow', i)) {
updateFlag = false;
$.messager.show({
title: 'Error messages',
msg: '第' + (i + 1) + '行数据有误',
timeout: 0
});
}
obj.datagrid('endEdit', i);
}
//获取所有变化的行
insertRows = obj.datagrid('getChanges', 'inserted');
updateRows = obj.datagrid('getChanges', 'updated');
deleteRows = obj.datagrid('getChanges', 'deleted');
//if、else判断是否有变化的行,if没有则跳出提示信息,else进行下一步
if ((insertRows.length == 0 && updateRows.length == 0 && deleteRows.length == 0) || !updateFlag) {
//$.messager.alert('Messages', '请进行正确的添加、更改或删除操作后再保存!', 'info');
}
else {
//将所有变化行的信息转换成string,并传给后台
var strInsertRows = JSON.stringify(insertRows);
var strUpdateRows = JSON.stringify(updateRows);
var strDeleteRows = JSON.stringify(deleteRows);
$.post(url, {
'insertStr': strInsertRows,
'updateStr': strUpdateRows,
'deleteStr': strDeleteRows
},
function (result) {
if (result == 'Success') {
obj.datagrid('acceptChanges');
obj.datagrid('reload');
obj.datagrid('unselectAll');
$.messager.alert('Messages', result, 'info', function () { self.parent.refreshTab() });
}
else {
$.messager.show({
title: '提示信息',
msg: result,
timeout: 0
});
}
}, 'text');
}
}
后台ashx保存到数据库:
JSONHelper.JSONToObject<List<StrorageInfo>>(insertStr);将得到的新增json转换成实体,这边你只要能把json拆成你要的数据就好