我想在添加新项目后立即开始编辑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 。控制台什么也没显示。
答案 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;
}
希望这会有所帮助。