CheckboxModel使某些特定字段可编辑

时间:2013-06-06 09:00:36

标签: extjs4 extjs-mvc

我正在使用checkboxmodel插件作为复选框列。但是,我想要的是'如果我检查一列,那行的某些单元格将是可编辑的'...我搜索了很多但没有运气。我正在使用MVC模式和插件因为我不知道如何处理它

/**Grid View**/

    plugins: [
        Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit: 2
        })
    ],
    selType: 'cellmodel',
    selModel: Ext.create('Ext.selection.CheckboxModel', {
        checkOnly: true,
        listeners: {
            selectionchange: function(model, records) {
                if (records[0]) {
                    //make any cell of a field editable
                }
            }
        }
    }),
    {
        header:'name',
        dataIndex:'name'},
        {
            header:'Quantity',
            dataIndex:'quantity',
        }

这里如果我检查任何一行我想让网格的数量字段可编辑...如果有人可以提供帮助,这将是很好的...

1 个答案:

答案 0 :(得分:1)

试试这个:

1)创建编辑器插件实例以供参考:

var editor = Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit: 2
        });

2)在网格插件定义中使用此实例:

plugins: [
        editor
    ]

3)修改你的selModel定义,看起来像这样:

selModel: Ext.create('Ext.selection.CheckboxModel', {
        checkOnly: true,
        listeners: {
            selectionchange: function(model, records) {
                if (records[0] && !editor.editing) {
                    editor.startEdit(records[0], 2);    // 2 is the number of column you want to edit
                }
            }
        }
    }),

使用此解决方案,您可以在选中网格行时仅编辑一个单元格。此外,如果选择更改等,您还需要实现其他逻辑来停止编辑以前编辑过的单元格...希望此提示可以帮助您。