I have a grid using the rowediting plugin.
On the grid I am listening for events edit, canceledit, itemcontextmenu, and selectionchange.
When selectionchange fires, I am executing the following code.
The line "store.removeAt(0);" is causing the canceledit event to fire, I want to remove or disable this event from firing. I've spent several hours researching how to code this and cannot come up with a resolution. Any assistance would be appreciated.
Code:
Ext.define('WarehouseInventoryMaintenance.view.ItemCountGrid', { extend : 'Ext.grid.Panel', alias : 'widget.itemcountgrid', header : false, title : 'My Grid Panel', store : 'Details', emptyText : 'No Items Loaded To Display', sortableColumns : false, initComponent : function() { var me = this; Ext.applyIf(me, { columns : [{ xtype : 'numbercolumn', format : '0', dataIndex : 'D1ITEMNBR', align : 'center', menuDisabled : true, editor : { xtype : 'numberfield', hideTrigger : true, keyNavEnabled: false, selectOnFocus : true, maxLength: 9, enforceMaxLength: true }, header : 'Item' }, { xtype : 'numbercolumn', format : '0', dataIndex : 'D1LOTCDDAT', name: 'D1LOTCDDAT', align : 'center', menuDisabled : true, text : 'Lot Code' }, { xtype : 'numbercolumn', format : '0', dataIndex : 'D1CASES', align : 'center', menuDisabled : true, editor : { xtype : 'numberfield', hideTrigger : true, keyNavEnabled: false, selectOnFocus : true, maxLength: 7, enforceMaxLength: true, minValue: 0 }, text : 'Cases' }, { xtype : 'gridcolumn', dataIndex : 'D1CASEUPC', align : 'center', menuDisabled : true, text : 'Case UPC' }, { xtype : 'numbercolumn', format : '0', dataIndex : 'D1SBC', align : 'center', menuDisabled : true, text : 'Units Per Case' }, { xtype : 'numbercolumn', format : '0', dataIndex : 'D1ITCNT', align : 'center', menuDisabled : true, text : 'Cases Per<br />Warehouse Box' }], viewConfig : { markDirty : false }, plugins : [Ext.create('Ext.grid.plugin.RowEditing', { clicksToEdit : 1, autoCancel : false, pluginId : 'rowediting' })], dockedItems : [{ xtype : 'toolbar', dock : 'top', items : [{ xtype : 'button', disabled : true, iconCls : 'add', text : 'Add', itemId : 'btnAddItem' }, { xtype : 'tbspacer' }, { xtype : 'tbseparator' }] }] }); me.callParent(arguments); } });
Code:
init: function (application) { var me = this; me.control({ 'itemcountgrid toolbar #btnAddItem': { click: me.onClickAddItem }, 'gridcontextmenu #menuItemClear': { click: me.onClickMenuItemClear }, 'itemcountgrid': { edit: function (editor, e, eOpts) { console.log('edit fired'); var record = e.record, status = e.record.get('D1STATUS'), rowIndex = e.rowIdx, store = e.store, itemCountGrid = e.grid, originalValues = e.originalValues, itemNumber = e.record.get('D1ITEMNBR'); console.log(status); if (status === 'Add') { if (!itemNumber || itemNumber === 0) { me.onCancelItemEdit(editor, e, eOpts); } else { me.onAfterItemEditAdd(record, rowIndex, store, itemCountGrid, originalValues); } } else { me.onAfterItemEditUpdate(record, rowIndex, store, itemCountGrid, originalValues); } }, canceledit: me.onCancelItemEdit, itemcontextmenu: me.showGridContextMenu, selectionchange: me.onGridSelectionChange } }); },
Code:
onGridSelectionChange: function(model, data, eOpts) {
console.log(data);
console.log(model);
console.log('grid selection change fired');
var me = this,
store = model.store,
record = store.getAt(0),
itemNumber = "",
status = data[0].get('D1STATUS'),
itemCountGrid = Ext.ComponentQuery.query('itemcountgrid')[0];
console.log(status);
if (status === 'Update') {
if (!Ext.isEmpty(record)) {
itemNumber = record.get('D1ITEMNBR');
if (itemNumber === "") {
store.removeAt(0);
}
}
}
}
Comment