2

我在 Angular 4.x 中使用 ag-grid。每当刷新网格时,它就会失去焦点。这似乎是 ag-grid 中的一个错误。

是否有任何解决方法,例如将焦点设置回网格,以便键盘导航仍然有效?

干杯,Seeschorle

4

3 回答 3

8

这是我的解决方案:

   private bringFocusBack() {
      let cell = this.gridOptions.api.getFocusedCell();

      if ( cell ) {
         this.gridOptions.api.setFocusedCell( cell.rowIndex, cell.column );
      }
   }

刷新后调用此方法:

this.gridOptions.api.refreshRows( rowsToRefresh );
this.bringFocusBack();
于 2017-11-24T06:24:06.963 回答
1

在刷新网格之前,保存 selectedRow 的 rowIndex

   let CellRowIndex = selectedRow.rowIndex;

刷新后,

     if (this.GridOptions.api != undefined ) {            
        this.GridOptions.api.selectIndex(CellRowIndex, false, false);
    }
于 2017-11-23T07:41:05.770 回答
0

我也一直在使用类似的解决方案(在反应中)来批准答案,但这可能会产生一些错误(我现在遇到的)。网格刷新后,它将强制聚焦一个单元格 - 这似乎是一个浏览器级别的焦点,所以如果你有一个输入焦点,它将失去它。如果您打开了一个下拉列表,则相同 - 它可能会在浏览器认为您聚焦/单击网格中的单元格时关闭。

于 2020-09-22T07:54:45.480 回答