刚刚添加Item时,ag-grid中的startEditingCell不起作用

时间:2017-08-02 21:40:38

标签: ag-grid

我想在添加新项目后立即开始编辑ag-grid。它在网格已经有数据时有效,但如果它是网格中的第一个项目则不起作用。

var a = $scope.gridOptions.api.updateRowData({add: [newItem]});

$scope.gridOptions.api.refreshCells({force:true}); // does not help
$scope.gridOptions.api.startEditingCell({
    rowIndex: a.add[0].rowIndex,
    colKey: 'Note'
});

使用 ag-grid 版本 12.0.2 。控制台什么也没显示。

2 个答案:

答案 0 :(得分:0)

似乎updateRowData不会自动启动$digest循环。添加$scope.$apply$timeout或类似内容可以缓解此问题。

答案 1 :(得分:0)

该问题显示了AngularJS代码。
这是一个使用常规Angular的示例。

  getContextMenuItems(params) {
    var result = [
      {
        name: 'Add new row',
        action: function() {
          //  Add a new row at the start of our agGrid's data array
          params.context.rowData.unshift({});
          params.api.setRowData(params.context.rowData);
          params.api.refreshCells();

          //  Get the name of the first column in our grid
          let columnField = params.column.userProvidedColDef.field;

          //  Highlight the left-hand cell in our new row, and start editing it
          params.api.setFocusedCell(0, columnField, null);
          params.api.startEditingCell({
              rowIndex: 0,
              colKey: columnField,
              rowPinned: null
          });
        },
        icon: '<img src="../../assets/images/icnAdd.png" width="14"/>'
      }
    ];
    return result;
  }

希望这会有所帮助。