【发布时间】:2016-08-02 06:25:48
【问题描述】:
我有一个可编辑的网格。其中两列是 ItemCode 和 Quantity。当用户输入数量并按下向下键时,我希望下一行将焦点设置在下一行的 ItemCode 单元格上。我添加了这个事件侦听器,它进入单元格,但它很快闪入编辑模式,然后进入选定模式。如何确保单元格保持编辑模式?
gridApi.cellNav.on.navigate($scope, function (newRowcol, oldRowCol) {
$scope.$broadcast('uiGridEventEndCellEdit');
if (oldRowCol != null &&
oldRowCol.col.colDef.name == 'quantity' &&
oldRowCol.row != newRowcol.row) {
newRowcol.row.grid.api.cellNav
.scrollToFocus(newRowcol.row.entity,
newRowcol.row.grid.options.columnDefs[1]);
}
});
更新:这是我的 columnDefs:
$scope.gridOptions.columnDefs = [
{
name: 'itemCode',
displayName: 'Part #',
editableCellTemplate: $scope.itemCodeEditableTemplate,
width: 150,
cellTooltip: function (row, col) {
return row.entity.itemCode
}
},
{
name: 'quantity', displayName: 'Qty', type: 'number', width: 60,
cellTooltip: function (row, col) {
return row.entity.quantity
}
}
]
【问题讨论】:
-
我相信这是 angular-ui-grid 的错误。当我将它作为一个错误提出时,它已关闭且未修复,并且没有关于解决方法的详细信息。请参阅github.com/angular-ui/ui-grid/issues/4812 和我在stackoverflow.com/questions/33991169/… 的 SO 帖子
-
我有一个解决方法,适用于我想要跳到下一行的一个字段时,在使用特定值的某个单元格时跳到下一行的情况,但是我意识到它不适用于您的情况您正在使用向下键移动。基本上,它涉及在列定义中使用 enableCellEdit:false 创建假间隔列。如果您可以让您的用户在单元格之间切换,请发布您的列定义,我可以分享解决方法作为可能的答案。
-
好的。感谢您的答复。我将尝试ag-grid.com 并看看情况如何,因为我已经为 UI-Grid 进行了预输入等工作。它的发展方式最终我将在任何地方进行工作。如果 ag-grid 不起作用,那么我会询问您的解决方法
-
好的,我不太确定 ag-grid。它没有添加/删除行(不刷新网格),我不确定它是否有单元格导航事件的侦听器,因为我在 GitHub 上看到了一个未解决的问题。我已经更新了我的问题以包含列定义。你能告诉我你的解决方法吗?
标签: javascript angularjs angular-ui-grid