Javascript 如何在角度ui网格中为特定值上的行着色?
在新的angular ui grid 3.0 rc12中,我试图根据行的值为其着色,但我一直无法做到。以下代码用于在早期版本(ngGrid)中工作: 这里的问题是表达式:Javascript 如何在角度ui网格中为特定值上的行着色?,javascript,html,css,angularjs,angular-ui-grid,Javascript,Html,Css,Angularjs,Angular Ui Grid,在新的angular ui grid 3.0 rc12中,我试图根据行的值为其着色,但我一直无法做到。以下代码用于在早期版本(ngGrid)中工作: 这里的问题是表达式: row.getProperty('count') === 1 不再像在ngGrid中那样工作了。任何关于如何在angular ui grid()中实现相同目标的猜测 非常感谢 新ui网格对cellClass有一个特殊属性: $scope.gridOptions = { enableSorting: true,
row.getProperty('count') === 1
不再像在ngGrid中那样工作了。任何关于如何在angular ui grid()中实现相同目标的猜测
非常感谢 新ui网格对cellClass有一个特殊属性:
$scope.gridOptions = {
enableSorting: true,
data:'myData',
columnDefs: [
{ field: 'sv_name', displayName: 'Nombre'},
{field: 'sv_code', displayName: 'Placa'},
{ field: 'count', displayName: 'Cuenta',
cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) {
if (grid.getCellValue(row,col) == 1) {
return 'blue';
}
return 'green';
}
}
]
};
看看他的
请注意,我在红色中为类绿色制作了颜色,因为这样可以更好地看到并激起最大的混乱:-)
更新:
下面是行着色的解决方案
按如下方式编写您的行模板:
var rowtpl='<div ng-class="{\'green\':true, \'blue\':row.entity.count==1 }"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader }" ui-grid-cell></div></div>';
var rowtpl='';
这是你的电话号码
请注意,背景颜色被单元格背景覆盖。自己想办法解决这个问题:-)
很抱歉,你的问题最初被误读了。我在回答中留下了cellClass部分,以防有人需要
请注意,背景颜色被单元格背景覆盖。自己想办法解决这个问题:-)
根据前面的回答,如果要在行级别覆盖背景色,可以使用以下选项:
.ui-grid-row .ui-grid-cell {
background-color: inherit !important;
}
请尝试此
查看此处的代码
.
我已经介绍了许多基于场景的单元格颜色,如
单元格中的负值将显示为红色
脏电池将是黄色的
可编辑单元格将为白色
不可编辑的单元格将为灰色
总值单元格将暗显
试试看。也许你可以从那里获得一些知识/想法。@Naushad KM,如果有人在$http调用后必须进行实时单元验证
这就是它所做的:
在可编辑行中输入一个值
在焦点松动(模糊)时,进行$http调用
使用返回的数据验证输入值
有效值将为绿色,无效值将为红色
示例
:您只需使用特定的css类即可
.invalidated {
background-color: #f2dede !important;
}
并在行模板div上添加带有“invalidated”字段的ng类或调用函数(示例在plnkr中):
嗯,我刚刚注意到你要的是整排。暂时不要理会我愚蠢的回答。我会看看我能找到什么,并会给你一个更新。非常感谢!它工作得很好。你真的帮我省去了很多麻烦:)@maingay,在上面的例子中返回“blue”之前,如何检查当前单元格以及同一行中另一个单元格的值?在返回“蓝色”之前,我需要检查同一行中的“grid.getCellValue(row,col)==1”和“sv_name”是否都等于“test”。@SamDevx:Use:if(grid.getCellValue(row,col)==1和&row.entity.sv_name==“test”)。使用row.entity,您可以访问row对象的每个成员。这是plunker:@SamDevx:这也是行着色的模板:var rowtpl='';这里是plunker:感谢Gabriel的CSS修复!如果在$http调用后收到“MY_CONSTANTS”中的值,即用于比较以更改单元格颜色的值,该怎么办?也就是说,您在字段中键入一些值,然后在编辑之后,它触发$http调用,然后使用$http返回的数据创建“MY_常量”,然后将同一单元格中的值与“MY_常量”中的值进行比较,并根据验证更改颜色。编辑后,您可能需要将行实体信息存储在闭包中。一旦$http请求返回值,该闭包就可以访问上次编辑的行实体信息。然后,您可能只需要发布事件,以使用“gridApi.core.notifyDataChange”API通知对框架的更改。注意:$http调用应该位于存储实体信息的同一个闭包中。实际上,我可以使用cellTemplate函数甚至使用rowTemplate来实现,而无需执行任何“gridApi.core.notifyDataChange”API调用。太棒了!。如果您能够创建一个plunker并进行共享,这将非常有帮助。谢谢。修改行或单元格模板不应该是解决此类问题的第一个方法,因为当您更新到更高的角度版本时,它可能会破坏一切。添加!重要提示
为我做了这个把戏,否则将不会覆盖类
。。
.ui-grid-row .ui-grid-cell {
background-color: inherit !important;
}
.invalidated {
background-color: #f2dede !important;
}
<div ng-class="{invalidated: row.entity.invalidated}"