【问题标题】:Extjs 4.0.7-Access editor field on grid loadExtjs 4.0.7-网格加载时访问编辑器字段
【发布时间】:2016-04-14 12:20:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你想达到什么目的?
  • 我想在设置数据时验证字段中的值(如果无效则显示红色边框),而不是点击字段

标签: extjs extjs4


【解决方案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
              });
    ...
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    相关资源
    最近更新 更多