Problème de Combobox de champ de temps en grille utilisant extjs4

1) Créez une grille et ajoutez un coulmn de type 'timefield' en grille avec renderer de format ('h: i A'). 2) Ajouter une ligne et mke une sélection dans la colonne "timefield", disons 4:00 AM. 3) Ajoutez une autre liste d'adjectifs et sélectionnez les mêmes données, à savoir 4:00 AM dans la liste déroulante. Vous ne pourrez pas effectuer cette action, et vous devez sélectionner une autre fois, puis revenir à la sélection initiale. Il semble être un bug ExtJS. Comment résoudre ce problème.

J'ai le code suivant dans la grille

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(); } } 

Je réinitialise les valeurs avant d'éditer. Mais cela ne fonctionne pas.