I have an EditorGrid + ColumnModel + RowSelectionModel. Four columns, each column with custom editor and renderer. First, 2th and 4th column is a combobox, 3th is a TriggerField.
My EditorGrid is implemented as Popup with "Save" and "Cancel" button.
Steps to repeat:
1.) add new row to the grid
2.) select a value in combobox of 1th,2th,4th column
3.) click into field of 3th column & type in something valid
4.) let the cursor stay in the field of 3th column and press "Save" button
Problem:
Firefox sometime simply ignore my input and to not store my value at the corresponding Record-instance. Sometimes Firefox throw an error:
F has no properties <ext-base.js line 10>
IE simply ignore my input and to not store my value at the corresponding Record-instance.
It seems that EditorGrid#onEditComplete is sometimes called, sometimes not. Or it dows not work properly.
Is this a known bug?
Thanks
Frank
My test code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> [2.0.2] EditorGrid: Input value not save into Record</title>
<link rel="stylesheet" type="text/css" href="../ext/resources/css/ext-all.css"/>
<script type="text/javascript" src="../ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../ext/ext-all-debug.js"></script>
var FilterSetRecord = Ext.data.Record.create([{name: 'filterid'},{name: 'qualifier'},{name: 'operator'},{name: 'value'}])
var store = new Ext.data.JsonStore({
storeId: 'fooStore',
reader:new Ext.data.JsonReader({id:'filterid'},FilterSetRecor d),
fields:['filterid','qualifier','operator','value']
});
Ext.apply(this,{
autoExpandColumn:'value',
autoHeight:true,
clicksToEdit:1,
storetore,
cm: cm,
sm: new Ext.grid.RowSelectionModel(),
tbar: [{
panel:this,
text: 'Add Qualifier',
handler : function(){
this.panel.addProductFilter();
}
}]
});
MyNamespace.ProductFilterSet.superclass.initCompon ent.call(this);
},
addProductFilter : function(config){
var store = this.getStore();
var ProductFilter = store.recordType;
//generate a unique id for the new filter
var dt = new Date();