Extjs修改时使一些单元格无法编辑

时间:2014-04-10 19:42:51

标签: extjs

我正在使用Extjs3.2和Row编辑器插件用于Grid.I有添加,修改和删除按钮。我有四个单元格格式Say(id,firstname,lastname,roll no)。如果添加所有字段应该可编辑,以便他可以添加所有四个字段。但是假设如果单击一个现有记录并单击修改我想要id字段不可编辑。如何实现此

以下是我的代码

var grid= new Ext.grid.GridPanel({
                            store : store_surv,
                            id : "grid_surv",
                            columns : [

                    {
                        header : "Id",
                        width : 120,
                        sortable : true,
                        dataIndex : 'id',
                        renderer: function (value, metaData, record, rowIndex, colIndex, store) {

                             return  getToolTip(value, metaData, record, rowIndex, colIndex, store);
                            } ,
                        editor : {
                            xtype : 'textfield',
                            allowBlank : true
                        }
                    }
                    {
                        header : "First Name",
                        width : 120,
                        sortable : true,
                        dataIndex : 'fname',
                        renderer: function (value, metaData, record, rowIndex, colIndex, store) {

                             return  getToolTip(value, metaData, record, rowIndex, colIndex, store);
                            } ,
                        editor : {
                            xtype : 'textfield',
                            allowBlank : true
                        }
                    }

                    {
                        header : "Last Name",
                        width : 120,
                        sortable : true,
                        dataIndex : 'lname',
                        renderer: function (value, metaData, record, rowIndex, colIndex, store) {

                             return  getToolTip(value, metaData, record, rowIndex, colIndex, store);
                            } ,
                        editor : {
                            xtype : 'textfield',
                            allowBlank : true
                        }
                    },

                   {
                        header : "Roll No",
                        width : 120,
                        sortable : true,
                        dataIndex : 'roll',
                        renderer: function (value, metaData, record, rowIndex, colIndex, store) {

                             return  getToolTip(value, metaData, record, rowIndex, colIndex, store);
                            } ,
                        editor : {
                            xtype : 'textfield',
                            allowBlank : true
                        }
                    }                   ],



                            title : 'Student List',
                            height : 350,
                            width : 750,
                            frame : false
                        })

1 个答案:

答案 0 :(得分:0)

向您的编辑器对象添加一个afteredit侦听器,并在该侦听器中调用id文本字段上的setDisabled(true)方法,如下所示:

var idTextField = Ext.create({
    xtype : 'textfield',
    allowBlank : true
});

var editor = new Ext.ux.grid.RowEditor({
    saveText: 'Update',
    listeners: {
        afteredit: function(){
            idTextField.setDisabled(true);
        }
    }
});

通过用上面提到的旧文本字段替换来修改现有代码:

...
{
  header : "Id",
  width : 120,
  sortable : true,
  dataIndex : 'id',
  renderer: function (value, metaData, record, rowIndex, colIndex, store) {
                return  getToolTip(value, metaData, record, rowIndex, colIndex, store);
  },
  editor : idTextField
}
...

所以我们刚刚更改了编辑器属性。