I want to highlight an entire row of angular-ui-grid when the mouse is on top of it.
I have tried to modify the rowTemplate by adding ng-mouseover and ng-mouseleave callbacks which set the background-color.
Here is my rowTemplate--I expect the first three lines to change the entire row color to red. But only the cell currently under the mouse gets changed.
<div
ng-mouseover="rowStyle={'background-color': 'red'}; grid.appScope.onRowHover(this);"
ng-mouseleave="rowStyle={}"
ng-style="rowStyle"
ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.uid"
ui-grid-one-bind-id-grid="rowRenderIndex + '-' + col.uid + '-cell'"
class="ui-grid-cell"
ng-class="{ 'ui-grid-row-header-cell': col.isRowHeader }"
role="{{col.isRowHeader ? 'rowheader' : 'gridcell'}}"
ui-grid-cell>
</div>
How do I highlight an entire row on mouseover events?
Another approach that I tried: using some callback function do this--like the appScope.onRowHover in the example. Here, I have the scope of the row being hovered on. How do I go about styling that row within the onRowHover function?
Thanks!
Link to Plunkr. I expect mousing over a grid cell to turn the entire row red.
(angular-ui-grid#3.0.7) Easiest way is to use CSS hover styles, just add the following to your CSS styles for the page and you are all set:
.ui-grid-row:hover .ui-grid-cell {
background-color: beige;
}
With ui-grid 3.1.1 the above styles didn't work. I had to do this:
.ui-grid-row:nth-child(odd):hover .ui-grid-cell{background:red}
.ui-grid-row:nth-child(even):hover .ui-grid-cell{background:red}