Как выбрать запись, щелкнув одну ячейку в сетке ExtJS 6 - PullRequest
1 голос
/ 07 октября 2019

У меня есть grid, и я хочу выбрать всю запись, щелкнув одну конкретную ячейку. Проблема в том, что я не могу использовать checkboxmodel seltype, потому что я хочу, чтобы в каждой ячейке отображался пользовательский значок. Так есть ли способ сделать это возможным?

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

HI Я думаю, вам нужно событие клика ячейки. Пожалуйста, найдите мой пример, надеюсь, это поможет

Ext.create('Ext.data.Store', {
    storeId: 'simpsonsStore',
    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' },
        { name: 'Homer', email: 'homer@simpsons.com', phone: '555-222-1244' },
        { name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
    ]
});

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [
        { text: 'Name', dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone' }
    ],
    listeners: {
        cellclick: function( grid, td, cellIndex, record, tr, rowIndex, e, eOpts )  {
            grid.getSelectionModel().selection(record);

        }
    },
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
}); 
1 голос
/ 08 октября 2019

Я решил проблему с событием beforecellclick. Теперь это выглядит так:

beforecellclick:function(grid,record,index){
                        if(index != 0){
                            return false
                        }
               }

и у меня есть столбец действий на colIndex 0:

xtype: 'actioncolumn',
        tooltip:'löschen',
        width: 30,
        icon: '../../../../../../resources/images/16/delete_2.png',
        handler:function(grid, rowIndex, colIndex){
            var record = grid.getStore().getAt(rowIndex);
            if( grid.getSelectionModel().isSelected(record) == false){
                grid.getSelectionModel().select(record, true)
            }else{
                grid.getSelectionModel().deselect(record)
            }      
        } 
...