我有一个网格,其中有一个列,编辑器定义如下。
this.accrualGrid = new Ext.grid.GridPanel({
store: store,
id:'accrualGrid_add',
plugins :[this.cellEditing],
columns: [
{header: 'Milestone Description', width: 340, dataIndex: 'Description',
getEditor: function(record) {
if(Ext.getCmp('accrualGrid_add').store.indexOf(record)==0)
{
return Ext.create('Ext.grid.CellEditor', {
field: Ext.create('Ext.form.field.Text', {
id:'MDesc_Add',
validator:function(val){
if(val=="")
return false;
else
return true;
},
})
});
}
}
}]
每次加载网格时,我都无法访问编辑器中的文本字段,直到我们点击该单元格。
Ext.getCmp('MDesc_Add')给出未定义的值。
单击该单元格后,它会为我提供文本字段对象。
如何仅在网格加载或设置网格数据
时访问文本字段对象答案 0 :(得分:1)
这是因为你在getEditor方法中实例化了这个字段,只有当需要编辑器时才会调用它(当它应该被显示时)。
如果希望字段始终可用,则应在实例化网格之前对其进行实例化:
var editorField = Ext.create('Ext.form.field.Text', {
id:'MDesc_Add',
validator:function(val){
if(val=="") return false;
else return true;
});
this.accrualGrid = new Ext.grid.GridPanel({
...
return Ext.create('Ext.grid.CellEditor', {
field: editorField
});
...
});