使用extjs4在网格中的时域combobox问题

1)创建一个网格,并在网格中添加一个类型为’timefield’的coulmn,格式为渲染器(’h:i A’)。 2)添加一行并在’timefield’列中选择一个选项,比如凌晨4:00。 3)添加另一个adjecent行并选择相同的数据,即下拉列表中的凌晨4:00。 您将无法执行此操作,您需要选择另一个时间,然后返回初始选择。 它看起来像是一个ExtJS错误。 如何解决这个问题。

我在网格中编写以下代码

this.mcmGridPanel = new Ext.grid.GridPanel({ height: 360, width: 680, title: 'Shifts', store: App.mcmAgentShiftStore, multiSelect: true, x: 0, y: 100, columns: [ { xtype: 'gridcolumn', header: 'Name', width: 120, dataIndex: 'Name', editor: { xtype: 'textfield', allowBlank: false } }, { xtype: 'gridcolumn', header: 'Initials', width: 45, dataIndex: 'Initials', editor: { xtype: 'textfield' } }, { xtype: 'gridcolumn', header: 'Employee Id', width: 75, dataIndex: 'EmployeeId', editor: { xtype: 'numberfield', allowBlank: false } }, { xtype: 'gridcolumn', header: 'Phone#', width: 100, dataIndex: 'MobilePhoneId', editor: { //TCS: 12/3/2013 cell phone table modified xtype: 'combobox', typeAhead: true, editable: true, triggerAction: 'all', selectionOnTab: true, // lazyRender: true, // forceSelection: true, store: App.mcmAllMobilePhoneStore, displayField: 'MobileIdentifier', valueField: 'MobilePhoneId', value: 'MobilePhoneId', queryMode: 'local', queryDelay: 100, specialkey: function(f, e) { if(e.getKey() === e.ESC) { this.hide(); } }, listeners: { load: function(store, recs, success) { if(Ext.typeOf(this.getPicker().loadMask) != "boolean") { console.log("trying to hide the loadmask"); this.getPicker().loadMask.hide(); } } } }, > renderer: function(value,metaData,record) { 
  if(value) { var MobileStore = Ext.getStore( App.mcmAllMobilePhoneStore); var Record = MobileStore.findRecord('MobilePhoneId', value); return Record ? Record.get('MobileIdentifier'): record.get('MobileIdentifier'); } else return ""; }//TCS: 12/3/2013 cell phone table modified end*/ }, { xtype: 'datecolumn', header: 'Start Date', width: 84, dataIndex: 'StartAvailability', format: 'Ym-d', editor: { xtype: 'datefield', allowBlank: false, format: 'Ymd' } }, { header: 'Start', width: 65, dataIndex: 'StartAvailabilityTime', format: 'H:i', editor: { xtype: 'timefield', id: starttime, format: 'H:i', increment: 15, allowBlank: false } }, { xtype: 'datecolumn', header: 'End Date', width: 84, dataIndex: 'EndAvailability', format: 'Ym-d', editor: { xtype: 'datefield', allowBlank: false, format: 'Ymd' } }, { header: 'End', width: 65, dataIndex: 'EndAvailabilityTime', format: 'H:i', editor: { xtype: 'timefield', id: endtime, format: 'H:i', increment: 15, allowBlank: false } } ], tbar: [ { text: 'Add', tooltip: 'Add Shift', iconCls: 'icon-shift-add', scope: me, handler: function() { var agent = this.mcmAgentCombobox.getValue(); if(agent) { addShift.call(this, agent); } else { App.mcmShowMessageBox({ title: 'Important', message: 'Please select an agent', time: 2000 }); } } }, { itemId: 'removeShift', text: 'Remove', tooltip: 'Remove Selected Shifts', iconCls: 'icon-shift-remove', scope: me, handler: function() { this.mcmRemoveShifts(); }, disabled: true }, { itemId: 'closeoutShift', text: 'Closeout', tooltip: 'Closeout Selected Shifts', iconCls: 'icon-shift-closeout', scope: me, handler: function() { var selection = this.mcmGridPanel.getSelectionModel().getSelection(); if(selection.length && selection.length > 1) { App.mcmShowMessageBox({ title: 'Important', message: 'Please enter a single shift to perform closeout', time: 2000 }); return; } App.mcmCloseoutShift(selection[0]); }, disabled: true }, //TCS: 12/3/2013 cell phone table modification { text: 'Add Cell Phone', tooltip: 'Add CellPhone', iconCls: 'icon-cellphone-add', scope: this, handler: function() { this.hide; App.mcmShowMobilePhoneWindow(); } }, //TCS: 12/3/2013 cell phone table modification end ], plugins: [ this.mcmRowEditing ], viewConfig: {}, listeners: { scope: me, beforeedit : function(editor, e) { editor.down('[@id=starttime]').clearValue(); editor.down('[@id=endtime]').clearValue(); } } 

我在编辑之前重置了值。 但它不起作用。