【问题标题】:Extjs Make some cells uneditable while modifingExtjs 修改时使某些单元格不可编辑
【发布时间】:2014-04-11 04:38:55
【问题描述】:

我正在为网格使用 Extjs3.2 和行编辑器插件。我有添加、修改和删除按钮。我在网格中有四个单元格说(id、名字、姓氏、卷号)。如果添加所有字段应该是可编辑的,以便他可以添加所有四个字段。但是假设如果单击一条现有记录并单击修改,我希望 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
                        })

;

【问题讨论】:

    标签: extjs


    【解决方案1】:

    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
    }
    ...
    

    所以我们只是更改了 editor 属性。

    【讨论】:

    • @ it not working afteredit 意味着当一切都完成并且我们点击更新按钮然后它被点击但我想要之前编辑,但问题是它也会调用添加
    • 嗯,你试过了吗?在 afteredit 它会禁用您的文本字段,当您第一次添加一个值时,您将无法在将来想要更新时对其进行编辑。这和你需要的一样。
    • 当编辑完成并且有人尝试保存但我想要在保存之前调用编辑后没有
    • 如果不手动填充网格,则使用 beforeedit,除了 afteredit。
    猜你喜欢
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多