Editor extjs4网格-按行更改列编辑器

Editor extjs4网格-按行更改列编辑器,editor,grid,field,extjs4,Editor,Grid,Field,Extjs4,ExtJS4网格预期每个列都有适当的编辑器(cellEditor或rowEditor)。 如果列的标题字段为dateField,则该列中的每一行都将应用日期选择器 我需要的是一个编辑器,每行而不是每列具有不同的字段编辑器 提供了Extjs3解决方案-不幸的是,它不适合Extjs4。 (请查看该链接以查看说明性图片,因为我还不能发布图片) 还有一个单列解决方案,名为,但同样-它只支持一列,与标准的Ext.grid组件有很大的不同 我曾尝试通过自定义column.field并重新加载grid.edi

ExtJS4网格预期每个列都有适当的编辑器(cellEditor或rowEditor)。 如果列的标题字段为dateField,则该列中的每一行都将应用日期选择器

我需要的是一个编辑器,每行而不是每列具有不同的字段编辑器

提供了Extjs3解决方案-不幸的是,它不适合Extjs4。 (请查看该链接以查看说明性图片,因为我还不能发布图片)

还有一个单列解决方案,名为,但同样-它只支持一列,与标准的Ext.grid组件有很大的不同

我曾尝试通过自定义column.field并重新加载grid.editingPlugin.editor手动更改网格编辑器,但总是得到一个没有字段的空白行编辑器面板

//by default rowEditor applies textField to all cells - I'm trying to force custom numberFiled on apropriate row
var numberField=Ext.form.field.Number();
grid.columns[0].field=numberField;
//destroy current rowEditor's instance 
delete grid.editingPlugin.editor;
//now, upon doubleClick on apropriate cell it should reinitialize itself (initEditor()) - and it does, but is an empty panel

我错过了什么?删除editingPlugin.editor后,一切都应该从头开始,就像第一次调用rowEditor时一样,但它会释放所有字段

我正在寻找解决方案,这家伙说属性网格有这种行为。 我已经对它进行了调整,以一种干净的方式为我工作 在第一次会议上,我宣布:

this.editors = {
'date'    : Ext.create('Ext.grid.CellEditor', { field: Ext.create('Ext.form.field.Date',   {selectOnFocus: true})}),
'string'  : Ext.create('Ext.grid.CellEditor', { field: Ext.create('Ext.form.field.Text',   {selectOnFocus: true})}),
'number'  : Ext.create('Ext.grid.CellEditor', { field: Ext.create('Ext.form.field.Number', {selectOnFocus: true})}),
'int'  : Ext.create('Ext.grid.CellEditor', { field: Ext.create('Ext.form.field.Number', {selectOnFocus: true})}),
'boolean' : Ext.create('Ext.grid.CellEditor', { field: Ext.create('Ext.form.field.ComboBox', {
    editable: false,
    store: [[ true, 'Sim' ], [false, 'Não' ]]
})})
};
我使用这些函数来帮助我(复制):

最后,将这些函数与列关联:

{text: "Valor", name : 'colunaValor', width: 75, sortable: true, dataIndex: 'valor', width:200,
    renderer: Ext.Function.bind(this.renderCell, this),
    getEditor: Ext.Function.bind(this.getCellEditor, this)
}
没关系,我自己做的:
{text: "Valor", name : 'colunaValor', width: 75, sortable: true, dataIndex: 'valor', width:200,
    renderer: Ext.Function.bind(this.renderCell, this),
    getEditor: Ext.Function.bind(this.getCellEditor, this)
}