Extjs 5:需要将滚动(水平)位置移动到网格中的特定位置(到特定列)

Extjs 5 : need to move the scroll (horizantal) position to the particular position(to particullar column) in grid

我正在尝试在网格中实现功能,当我们单击按钮(向左、向右、倒带、向前)时,我们需要将滚动(水平)位置移动到特定位置,就像我们需要移动位置一样scroll.I 能够实现除左侧导航之外的所有功能。有什么想法吗?

我不知道如何获得水平滚动位置或列位置,因此我从 column.getPosition() (它 returns [x, y] 位置)计算它。

Ext.create('Ext.Button', {
    text     : 'right',
    renderTo : Ext.getBody(),
    listeners: {
            click: function() {
                var grid = Ext.getCmp('grid1');
                var columns = grid.getColumnManager().getColumns();

                var index = getCurrentColumn(columns, true);

                var p = columns[index+1].getPosition();

                grid.scrollByDeltaX(p[0]);

            }
        }

});

function getCurrentColumn(columns, isMovingRight)
{
    var index = 0;
    for (var i=0; i<columns.length; i++){

        // columns[i].getPosition() returns [x, y]
        if (columns[i].getPosition()[0] == 0){
            index = i;
            break;
        }

        if (columns[i].getPosition()[0] > 0){
            if (isMovingRight){
                index = i-1;
            }
            else{
                index = i;
            }
            break;
        }
    }

    return index;
}

/* function for click forward button */
function getNextPageColumn(columns, gridWidth)
{
    var index = -1;
    for (var i=0; i<columns.length; i++){
        if (columns[i].getPosition()[0] >= gridWidth){
            index = i;
            break;
        }
    }

    return index;
}

以编程方式滚动网格的示例 https://fiddle.sencha.com/#fiddle/1bkm