Extjs使某些单元格在修改时不可编辑

Extjs使某些单元格在修改时不可编辑,extjs,Extjs,我正在使用Extjs3.2和网格行编辑器插件。我有添加、修改和删除按钮。我在网格中有四个单元格(id、firstname、lastname、roll no)。在添加的情况下,所有字段都应该是可编辑的,这样他就可以添加所有四个字段。但假设如果单击一条现有记录并单击修改,我希望id字段不可编辑。如何实现这一点 下面是我的代码 var grid= new Ext.grid.GridPanel({ store : store_surv,

我正在使用Extjs3.2和网格行编辑器插件。我有添加、修改和删除按钮。我在网格中有四个单元格(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
                        })

)

在编辑器对象中添加一个
afteredit
侦听器,并在该侦听器中调用id text字段上的
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
}
...

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

@编辑后它不工作意味着当一切都完成后,我们单击“更新”按钮,然后它被单击,但我希望在编辑之前,但问题是它将调用add-alsoWell,您尝试过吗?在afteredit上,当您第一次添加值时,它将禁用您的文本字段,并且当您将来想要更新时,您将无法编辑该值。当编辑完成,有人试图保存,但我希望在保存之前调用。如果你不手动填充网格,则使用beforeedit,除了afteredit。