ExtJS 7 如何 select 右键单击​​网格行

ExtJS 7 How to select grid row on rightclick

我想在 ExtJS 7 现代网格中打开上下文菜单和 select 右键单击​​的行。上下文菜单适用于以下代码。但是,我找不到 select 该行的方法。 grid.getSelectionModel() 似乎在 ExtJS 7 中不再可用。

// Listener in my Ext.app.ViewController manages to update and show context menu but not to select the row.
onContextMenu: function (e) {
        const grid = this.getView();
        const target = e.getTarget(grid.itemSelector);
        if (target) {
            e.stopEvent();
            const item = Ext.getCmp(target.id);
            if (item) {
                // Would like to select row here with something like grid.getSelectionModel().selectRow(rowindex);
                this.updateMenu(item.getRecord(), item.el, e);
            }
        }
    }

查看以下 fiddle 示例(现代工具包 7.3.1)

Ext.application({
    name: 'Fiddle',

    launch: function () {
        const menu = new Ext.menu.Menu({
            items: [{
                text: 'Menu Item 1'
            }, {
                text: 'Menu Item 2'
            }]
        });

        Ext.Viewport.add({
            xclass: 'Ext.grid.Grid',
            store: Ext.create('Ext.data.Store', {
                fields: ['name', 'email', 'phone'],
                data: [{
                    name: 'Lisa',
                    email: 'lisa@simpsons.com',
                    phone: '555-111-1224'
                }, {
                    name: 'Bart',
                    email: 'bart@simpsons.com',
                    phone: '555-222-1234'
                }]
            }),

            columns: [{
                text: 'Name',
                dataIndex: 'name',
                width: 200
            }, {
                text: 'Email',
                dataIndex: 'email',
                width: 250
            }, {
                text: 'Phone',
                dataIndex: 'phone',
                width: 120
            }],
            listeners: {
                childcontextmenu: function (grid, location) {
                    const {
                        record,
                        event
                    } = location;
                    grid.deselectAll();
                    grid.setSelection(record);
                    menu.showAt(event.getX(), event.getY());
                    event.stopEvent()
                }
            }
        })
    }
});