在ExtJS Grid中禁用多行选择

时间:2015-03-26 13:32:13

标签: extjs extjs4.2

在我的问题中已经存在类似的问题了:

Ext js Editor Grid Disable Multiple Row Selection

但接受的答案是错误的。它说使用 RowSelectionModel 作为属性如下:

selModel: new Ext.grid.RowSelectionModel({singleSelect:true}),

但是在API中没有这样的东西存在(也许他们正在讨论不同的extjs版本)。

如何在Extjs网格中禁用多项选择?即。没有SHIFT或CTRL多选。只允许单一选择。

1 个答案:

答案 0 :(得分:2)

请参阅documentation

它表明您可以像这样指定选择模型:

  

默认情况下,网格使用行选择模型,但这很容易自定义,如下所示:

Ext.create('Ext.grid.Panel', {
    selType: 'cellmodel',
    store: ...
});

或者替代选项是:

Ext.create('Ext.grid.Panel', {
    selType: 'rowmodel',
    store: ...
});

编辑:

您需要指定Selection Model MODE

Fiddle

Ext.application({
    name: 'MyApp',

    launch: function() {
        var store = Ext.create('Ext.data.Store', {
            storeId: 'simpsonsStore',
            fields: ['name', 'email', 'phone'],

            proxy: {
                type: 'ajax',
                url: 'data1.json',
                reader: {
                    type: 'json',
                    rootProperty: 'items'
                }
            },
            autoLoad: true
        });


        Ext.create("Ext.grid.Panel", {
            title: 'Simpsons',
            renderTo: Ext.getBody(),
            store: Ext.data.StoreManager.lookup('simpsonsStore'),
            selModel: new Ext.selection.RowModel({
                mode: "SINGLE"
            }),
            columns: [{
                text: 'Name',
                dataIndex: 'name'
            }, {
                text: 'Email',
                dataIndex: 'email',
                flex: 1
            }, {
                text: 'Phone',
                dataIndex: 'phone'
            }],
            height: 200,
            width: 400,
        });

    }

});