如何在 UI 网格中设置对特定单元格的关注

How to set the Focus on Particular Cell in UI Grid

我遇到这样一种情况,如果我编辑 Cell1,UI 网格将为 [运行 个验证器Cell1,但我也想 运行 Cell2 的验证器。 如果 Cell2 值不正确,那么我想将重点放在 Cell2 上,并在 [=29 中设置验证消息=]uiGridValidateService.setValidator().

我能够 运行 Cell2 的验证器 Cell1 编辑使用下面的语句,但无法突出显示 Cell2.

代码:

gridApi.grid.validate.runValidators(rowEntity, colDef, rowEntity['Cell2'], NaN, $scope.gridApi.grid);

如何将焦点放在 UI 网格中的特定单元格上?

我通过下面的方法解决了,希望对有相同需求的人有所帮助,

我没有尝试将焦点设置在错误字段上,而是在 afterCellEdit() 上添加了以下代码。

if (!rowEntity['$$errors' + fieldName]) {
        rowEntity['$$errors' + fieldName] = {};
    }
    rowEntity['$$errors' + fieldName][validatorName] = true;
    rowEntity['$$invalid' + fieldName] = true;

我的 fieldName 是目标字段,我想在每个 cellEdit 上验证它。所以在我的例子中,即使我正在编辑 Cell1 的值,我也会传递 fieldName='Cell2' 并且它会针对我的验证器进行验证,我将作为 'validatorName' 传递。如果它不是正确的值,那么它会将 cell2 突出显示为红色并显示其工具提示。

希望对大家有所帮助。如果有任何问题,请告诉我。