Extjs 4.0.7-在网格加载时访问编辑器字段

Extjs 4.0.7-Access editor field on grid load

我有一个网格,其中有一列的编辑器定义如下。

   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') 给出未定义的值。

单击该单元格后,它会为我提供文本字段对象。

如何在网格加载或设置网格数据时访问文本字段对象?

这是因为你在 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
              });
    ...
});