frankgao
|
 |
« on: February 08, 2016, 04:41:09 AM » |
|
I want get the getchanges of the datagrid after appendRow,editRow or deleteRow. but here is no changes data return,
My code:
<script>
initbillgrid();
$(function () { $('#griddetail').datagrid().datagrid('enableCellEditing'); })
var editIndex = undefined; var detailvalid = true;
$(function () { bindData(); });
function bindData() { $('#griddetail').datagrid({ title: '', url: '/Stocks/PORequest/DetailReload', method: 'get', dataType: "json", fit: true, toolbar: '', fitColumns: true, rownumbers: true, striped: true, autoRowHeight: false, pageSize: 10000, pagination: false, remoteSort: false, idField: 'peid', columns: [[ { field: 'peid', hidden: true, title: 'ID' }, { field: 'materialid', hidden: true, title: 'materialid' }, { field: 'mrpid', hidden: true, title: 'mrpid' }, { field: 'unitid', hidden: true, title: 'unitid' }, { field: 'pounitid', hidden: true, title: 'pounitid' }, { field: 'ma_code', title: 'Code', width: '110px', sortable: true }, { field: 'ma_name', title: 'Name', width: '120px', sortable: true }, { field: 'qty', title: 'Quantity', width: '100px', editor: { type: 'text', options: { required: true } } }}, ]], queryParams: { formid: '1', masterid: '1' }, singleSelect: true, onLoadSuccess: function (data) { }, toolbar: [{ text: 'Add', iconCls: 'icon-table_add', handler: function () { appendDetail(); } }, '-', { text: 'Delete', iconCls: 'icon-table_delete', handler: function () { removeit(); } }], onClickRow: function (rowIndex, rowData) { editIndex = rowIndex; } }); }
function appendDetail() { dlgMaterialMultiple(); }
function dlgMaterialMultipleInfor(checkedRows) { var rows = $('#griddetail').datagrid('getData'); rows = rows.total + 1; $.each(checkedRows, function (n, value) { $('#griddetail').datagrid('appendRow', { peid: '-1', materialid: value.maid, mrpid: '0', unitid: value.unitid, pounitid: value.unitidpo, ma_code: value.macode, ma_name: value.maname, ma_model: value.mamodel, mu_name: value.unitponame, precision: value.precision, qty: parseFloat('1').toFixed(value.precision), ftpurchtime: '@ViewBag.AfterDate' }); editIndex = $('#griddetail').datagrid('getRows').length - 1; $('#griddetail').datagrid('endEdit', editIndex); }); }
function removeit() { if (editIndex == undefined) { return } $('#griddetail').datagrid('cancelEdit', editIndex).datagrid('deleteRow', editIndex); editIndex = undefined; }
function accept() { $('#griddetail').datagrid('acceptChanges'); }
function postData() { accept(); var inserted = $('#griddetail').datagrid('getChanges', "inserted"); var deleted = $('#griddetail').datagrid('getChanges', "deleted"); var updated = $('#griddetail').datagrid('getChanges', "updated");
var rowsCh = $('#griddetail').datagrid('getChanges'); console.log(rowsCh); }
function initbillgrid() { (function ($) { function nav(target) { var dg = $(target); var opts = dg.datagrid('options'); dg.datagrid('getPanel').attr('tabindex', 1).css('outline-style', 'none').unbind('.cellediting').bind('keydown.cellediting', function (e) { switch (e.keyCode) { case 37: // left gotoCell(target, 'left'); break; case 39: // right gotoCell(target, 'right'); break; case 38: // up gotoCell(target, 'up'); break; case 40: // down gotoCell(target, 'down'); break; case 13: // enter var cell = $(this).find('td.datagrid-row-selected'); if (cell.length) { var field = cell.attr('field'); var index = cell.closest('tr.datagrid-row').attr('datagrid-row-index'); dg.datagrid('editCell', { index: index, field: field }); } break; } return false; }); }
function gotoCell(target, p) { var dg = $(target); var opts = dg.datagrid('options'); var cell = dg.datagrid('getPanel').find('td.datagrid-row-selected'); if (typeof p == 'object') { cell.removeClass('datagrid-row-selected'); cell = opts.finder.getTr(target, p.index).find('td[field="' + p.field + '"]'); cell.addClass('datagrid-row-selected'); return; } if (!cell) { return; } var field = cell.attr('field'); var tr = cell.closest('tr.datagrid-row'); var index = parseInt(tr.attr('datagrid-row-index')); var td = cell; if (p == 'up' && index > 0) { td = opts.finder.getTr(dg[0], index - 1).find('td[field="' + field + '"]'); } else if (p == 'down' && index < dg.datagrid('getRows').length - 1) { td = opts.finder.getTr(dg[0], index + 1).find('td[field="' + field + '"]'); } else if (p == 'left') { td = td.prev(); } else if (p == 'right') { td = td.next(); } if (td.length) { dg.datagrid('scrollTo', td.closest('tr.datagrid-row').attr('datagrid-row-index')); cell.removeClass('datagrid-row-selected'); td.addClass('datagrid-row-selected'); } }
function editCell(target, param) { var dg = $(target); var opts = dg.datagrid('options'); var fields = dg.datagrid('getColumnFields', true).concat(dg.datagrid('getColumnFields')); $.map(fields, function (field) { var col = dg.datagrid('getColumnOption', field); col.editor1 = col.editor; if (field != param.field) { col.editor = null; } }); dg.datagrid('endEdit', param.index); dg.datagrid('beginEdit', param.index); opts.editIndex = param.index; var ed = dg.datagrid('getEditor', param); if (ed) { var t = $(ed.target); if (t.hasClass('textbox-f')) { t = t.textbox('textbox'); } t.focus(); t.bind('keydown', function (e) { if (e.keyCode == 13) { dg.datagrid('endEdit', param.index); gotoCell(target, param); dg.datagrid('getPanel').focus(); } else if (e.keyCode == 27) { dg.datagrid('cancelEdit', param.index); gotoCell(target, param); dg.datagrid('getPanel').focus(); } e.stopPropagation(); }); } $.map(fields, function (field) { var col = dg.datagrid('getColumnOption', field); col.editor = col.editor1; }); }
function enableCellEditing(target) { var dg = $(target); var opts = dg.datagrid('options'); opts.oldOnClickCell = opts.onClickCell; opts.onClickCell = function (index, field) { if (opts.editIndex != undefined) { if (dg.datagrid('validateRow', opts.editIndex)) { dg.datagrid('endEdit', opts.editIndex); opts.editIndex = undefined; } else { return; } } dg.datagrid('selectRow', index).datagrid('editCell', { index: index, field: field }).datagrid('gotoCell', { index: index, field: field }); opts.oldOnClickCell.call(this, index, field); }; opts.onBeforeSelect = function () { return false; }; }
$.extend($.fn.datagrid.methods, { editCell: function (jq, param) { return jq.each(function () { editCell(this, param); }); }, gotoCell: function (jq, param) { return jq.each(function () { gotoCell(this, param); }); }, enableCellEditing: function (jq) { return jq.each(function () { nav(this); enableCellEditing(this); }); } });
})(jQuery); } </script>
|