/** * edatagrid - jQuery EasyUI * * Licensed under the GPL: * http://www.gnu.org/licenses/gpl.txt * * Copyright 2011-2015 www.jeasyui.com * * Dependencies: * datagrid * messager * */ (function($){ // var oldLoadDataMethod = $.fn.datagrid.methods.loadData; // $.fn.datagrid.methods.loadData = function(jq, data){ // jq.each(function(){ // $.data(this, 'datagrid').filterSource = null; // }); // return oldLoadDataMethod.call($.fn.datagrid.methods, jq, data); // }; var autoGrids = []; function checkAutoGrid(){ autoGrids = $.grep(autoGrids, function(t){ return t.length && t.data('edatagrid'); }); } function saveAutoGrid(omit){ checkAutoGrid(); $.map(autoGrids, function(t){ if (t[0] != $(omit)[0]){ t.edatagrid('saveRow'); } }); checkAutoGrid(); } function addAutoGrid(dg){ checkAutoGrid(); for(var i=0; i= 0){ $(this).edatagrid('editRow', index); focusEditor(target, field); } if (opts.onClickCell){ opts.onClickCell.call(target, index, field, value); } }, onBeforeEdit: function(index, row){ if (opts.onBeforeEdit){ if (opts.onBeforeEdit.call(target, index, row) == false){ return false; } } if (opts.autoSave){ addAutoGrid(this); } opts.originalRow = $.extend(true, [], row); }, onAfterEdit: function(index, row){ delAutoGrid(this); opts.editIndex = -1; var url = row.isNewRecord ? opts.saveUrl : opts.updateUrl; if (url){ var changed = false; var fields = $(this).edatagrid('getColumnFields',true).concat($(this).edatagrid('getColumnFields')); for(var i=0; i=0){ if (opts.onBeforeSave.call(this, editIndex) == false) { setTimeout(function(){ dg.datagrid('selectRow', editIndex); },0); return; } } dg.datagrid('endEdit', editIndex); dg.datagrid('beginEdit', index); if (!dg.edatagrid('isEditing', index)){ return; } opts.editIndex = index; focusEditor(this); var rows = dg.datagrid('getRows'); opts.onEdit.call(this, index, rows[index]); } else { setTimeout(function(){ dg.datagrid('selectRow', editIndex); }, 0); } } }); }, addRow: function(jq, index){ return jq.each(function(){ var dg = $(this); var opts = $.data(this, 'edatagrid').options; if (opts.editIndex >= 0){ if (!dg.datagrid('validateRow', opts.editIndex)){ dg.datagrid('selectRow', opts.editIndex); return; } if (opts.onBeforeSave.call(this, opts.editIndex) == false){ setTimeout(function(){ dg.datagrid('selectRow', opts.editIndex); },0); return; } dg.datagrid('endEdit', opts.editIndex); } var rows = dg.datagrid('getRows'); function _add(index, row){ if (index == undefined){ dg.datagrid('appendRow', row); opts.editIndex = rows.length - 1; } else { dg.datagrid('insertRow', {index:index,row:row}); opts.editIndex = index; } } if (typeof index == 'object'){ _add(index.index, $.extend(index.row, {isNewRecord:true})) } else { _add(index, {isNewRecord:true}); } // if (index == undefined){ // dg.datagrid('appendRow', {isNewRecord:true}); // opts.editIndex = rows.length - 1; // } else { // dg.datagrid('insertRow', { // index: index, // row: {isNewRecord:true} // }); // opts.editIndex = index; // } dg.datagrid('beginEdit', opts.editIndex); dg.datagrid('selectRow', opts.editIndex); if (opts.tree){ var node = $(opts.tree).tree('getSelected'); rows[opts.editIndex][opts.treeParentField] = (node ? node.id : 0); } opts.onAdd.call(this, opts.editIndex, rows[opts.editIndex]); }); }, saveRow: function(jq){ return jq.each(function(){ var dg = $(this); var opts = $.data(this, 'edatagrid').options; if (opts.editIndex >= 0){ if (opts.onBeforeSave.call(this, opts.editIndex) == false) { setTimeout(function(){ dg.datagrid('selectRow', opts.editIndex); },0); return; } $(this).datagrid('endEdit', opts.editIndex); } }); }, cancelRow: function(jq){ return jq.each(function(){ var opts = $.data(this, 'edatagrid').options; if (opts.editIndex >= 0){ $(this).datagrid('cancelEdit', opts.editIndex); } }); }, destroyRow: function(jq, index){ return jq.each(function(){ var dg = $(this); var opts = $.data(this, 'edatagrid').options; var rows = []; if (index == undefined){ rows = dg.datagrid('getSelections'); } else { var rowIndexes = $.isArray(index) ? index : [index]; for(var i=0; i