Ag grid 使用tab键输入ag网格

Ag grid 使用tab键输入ag网格,ag-grid,Ag Grid,如何使用tab键进入网格 可以在声明tab的html div上设置tabindex,但它只关注整个div。我想关注第一行的第一个单元格 就个人而言,我想出了以下黑客,但我正在寻找一个更好的解决方案。欢迎使用任何外部库 我的网格和简单行中只有一列,因此应该改进此代码,以消除所有列和/或具有多个级别的行的所有单元格上的潜在焦点 在我的指令内 <div ag-grid="ctlr.gridOptions" class="ag-fresh" role="grid" tabindex="201" n

如何使用tab键进入网格

可以在声明tab的html div上设置tabindex,但它只关注整个div。我想关注第一行的第一个单元格

就个人而言,我想出了以下黑客,但我正在寻找一个更好的解决方案。欢迎使用任何外部库

我的网格和简单行中只有一列,因此应该改进此代码,以消除所有列和/或具有多个级别的行的所有单元格上的潜在焦点

在我的指令内

<div ag-grid="ctlr.gridOptions" class="ag-fresh" role="grid" tabindex="201" ng-focus="ctlr.onFocus()" id="myGrid"></div>

内部控制器

ctrl.onFocus = function()
{
    var rows = $('#myGrid .ag-row.ag-row-even.ag-row-level-0');
    var firstRow = rows[0];

    var firstColumnCells = $('#myGrid .ag-row.ag-row-even.ag-row-level-0 .ag-cell.cell-col-0');
    var firstCell = firstColumnCells[0];

    //remove potential focus on rows
    for (var i = 0; i < rows.length; i++) 
    {
        rows[i].classList.remove('ag-row-focus');
        rows[i].classList.add('ag-row-no-focus');
    }

    //remove potential focus on first column cells
    for (var j = 0; j < rows.length; j++)
    {
        firstColumnCells[j].classList.remove('ag-cell-focus');
        firstColumnCells[j].classList.add('ag-cell-no-focus');
    }

    //focus first row
    firstRow.classList.remove('ag-row-no-focus');
    firstRow.classList.add('ag-row-focus');

    //focus first cell
    firstCell.classList.remove('ag-cell-no-focus');
    firstCell.classList.add('ag-cell-focus');

    firstCell.focus();

};
ctrl.onFocus=function()
{
var rows=$('#myGrid.ag row.ag row even.ag-row-level-0');
var firstRow=行[0];
var firstColumnCells=$(“#myGrid.ag-row.ag-row-even.ag-row-level-0.ag-cell.cell-col-0”);
var firstCell=firstColumnCell[0];
//删除行上的潜在焦点
对于(变量i=0;i

github上存在的问题:

使用一个指令对我来说不那么麻烦-在将tabindex=“0”添加到grid div以获得键盘焦点后,我使用此指令将焦点从div移动到左上角的单元格:

function gridTab($window) {
    return {
        restrict : 'A',
         link : function(scope, element) {
            element.bind('focus', function() {
                if (scope.grid.rowData.length > 0) {
                    scope.grid.api.setFocusedCell(0,0);
                }
            });
        }
    };
}

使用一个指令对我来说不那么麻烦-在将tabindex=“0”添加到grid div以获得键盘焦点后,我使用此指令将焦点从div移动到左上角的单元格:

function gridTab($window) {
    return {
        restrict : 'A',
         link : function(scope, element) {
            element.bind('focus', function() {
                if (scope.grid.rowData.length > 0) {
                    scope.grid.api.setFocusedCell(0,0);
                }
            });
        }
    };
}