var editIndex;
var editLength;
var submitNum = 0;
var urlPrefix = 'http://localhost:8080/ACM/manage_page';
function pagerFilter(data){
if (typeof data.length == 'number' && typeof data.splice == 'function'){
data = {
total: data.length,
rows: data
}
}
var dg = $(this);
var opts = dg.datagrid('options');
var pager = dg.datagrid('getPager');
pager.pagination({
pageList: [5,10,15,20],
beforePageText: '第',
afterPageText: '页 共 {pages} 页',
displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录',
onSelectPage:function(pageNum, pageSize){
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',{
pageNumber:pageNum,
pageSize:pageSize
});
dg.datagrid('loadData',data);
}
});
if (!data.originalRows){
data.originalRows = (data.rows);
}
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = (data.originalRows.slice(start, end));
return data;
}
function submitToDB(moduleDatagrid,moduleName) {
var dg = $(moduleDatagrid)
if(editIndex != undefined){alert("请先保存更改的内容")
return
}
dg.datagrid('loaded');
if (submitNum > 0) {
var submittedNum
var updateRows = dg.datagrid('getChanges', 'updated');
if (updateRows.length > 0) {
subSave(dg,moduleName,"update", updateRows);
alert('成功更新了' + updateRows.length + '行');
submitNum -= updateRows.length;
query(moduleDatagrid,moduleName);
}
var deleteRows = dg.datagrid('getChanges', 'deleted');
if (deleteRows.length > 0) {
subSave(dg,moduleName,"delete", deleteRows);
alert('成功删除了' + deleteRows.length + '行');
submitNum -= deleteRows.length;
query(moduleDatagrid,moduleName);
}
var insertRows = dg.datagrid('getChanges', 'inserted');
if (insertRows.length > 0){
var rightFormatRows = getAddRowsWithRightFormat(moduleDatagrid)
subSave(moduleDatagrid,moduleName,"add", rightFormatRows);
alert('成功增加了' + insertRows.length + '行');
submitNum -= insertRows.length;
query(moduleDatagrid,moduleName);
}
}
}
function subSave(moduleDatagrid,moduleName,method, rows) {
var dg = $(moduleDatagrid)
var msg;
$.each(rows, function(i, o) {
o = rows[i]
var url = urlPrefix + moduleName + method + '.do';
$.ajax({
url : url,
type : "POST",
data : JSON.stringify(o),
success : function(data) {
if (msg) {
$.messager.alert('错误', '操作失败:' + msg, 'error');
dg.datagrid('loaded');
}
},
error:function(data){
alert("操作失败")
},
dataType : "json",
contentType : "application/json"
});
dg.datagrid('acceptChanges');
dg.datagrid('loaded');
dg.datagrid('reload');
});
}
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}
function insertRow(moduleDatagrid){
var dg= $(moduleDatagrid)
if(editIndex != undefined ){
dg.datagrid("endEdit",editIndex)
}
if(editIndex == undefined){
dg.datagrid("insertRow",{
index : 0,
row : {}
})
dg.datagrid("beginEdit",0)
editIndex = 0
}
}
function removeRows(moduleDatagrid){
var dg = $(moduleDatagrid)
var removeRows = dg.datagrid('getChecked')
if(removeRows.length>0){
$.each(removeRows,function(index,row){
index = dg.datagrid('getRowIndex', row)
dg.datagrid('deleteRow', index)
})
editIndex = undefined;
submitNum += removeRows.length
}
else{
editIndex = undefined;
}
}
function saveEditing(moduleDatagrid) {
var dg = $(moduleDatagrid)
if (editIndex != undefined) {
dg.datagrid('endEdit', editIndex);
editIndex = undefined;
dg.datagrid('reload')
}
var updateRows = dg.datagrid('getChanges', 'updated')
var insertRows = dg.datagrid('getChanges', 'inserted')
submitNum += updateRows.length
submitNum += insertRows.length
}
function getChanges() {
if (editIndex == undefined) {
alert(submitNum + '行被改变了!');
} else {
alert("请先保存编辑的行")
}
}
function reject(moduleDatagrid) {
var dg = $(moduleDatagrid)
dg.datagrid('rejectChanges');
editIndex = undefined;
editLength = 0;
submitNum = 0;
}
function editRow(moduleDatagrid) {
var dg = $(moduleDatagrid)
if (editIndex != undefined)
return;
var row = dg.datagrid('getSelected');
if (row == undefined) {
$.messager.alert('提示', "请先单击选中要编辑的行", 'info');
return;
}
var index = dg.datagrid('getRowIndex', row);
dg.datagrid('beginEdit', index);
var editors = dg.datagrid('getEditors', index);
editIndex = index;
editLength = 1;
}