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

时间:2016-04-14 12:20:59

标签: extjs extjs4

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

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

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

如何仅在网格加载或设置网格数据

时访问文本字段对象

1 个答案:

答案 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
              });
    ...
});