extjs - 如何在单击复选框后启用网格单元格值进行编辑

extjs - how to enable grid cell vaule to edit after clicking check box

如何仅在单击同一行中的复选框后才启用网格单元格编辑。

var simpsonPanel = Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    //selType: 'checkboxmodel',
    forceFit:true,
    plugins: [
        Ext.create('Ext.grid.plugin.CellEditing', {
        clicksToEdit: 1
    })],
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [
        {
                xtype: 'checkcolumn',
               // text: 'Phase 9',
                dataIndex:'Phase9',
                listeners: {
                        checkChange: onCheckChange
                }},
        { text: 'Name',  dataIndex: 'name'},
        { text: 'Email', dataIndex: 'email' },
        { text: 'Phone', dataIndex: 'phone' }
    ],
    height: 200,
    width: 400

});

总代码https://fiddle.sencha.com/#fiddle/18c0.

单击复选框后,我需要启用名称单元格进行编辑。 如果未选中该复选框,则用户无法编辑名称单元格。

谢谢

您可以监听 beforeedit 事件和 return 是否允许编辑的标志。

Ext.create('Ext.grid.plugin.CellEditing', {
    clicksToEdit: 1,
    listeners: {
        beforeedit: function(editor, event) {
            return event.record.get('Phase9');
        }
    }
})]

https://fiddle.sencha.com/#fiddle/18c4

在配置选项中,如果你输入 checkOnly: true,那么只有当你点击复选框时它才会检查,否则它不会。

参见文档:http://docs.sencha.com/extjs/4.2.5/#!/api/Ext.selection.CheckboxModel-cfg-checkOnly