How do you conditionally style a cell in a Dojo data grid?
Asked Answered
P

1

5

Essentially what I want to do is to apply additional CSS classes to individual cells in a data grid based on the value of the cell. An example would be to color the text red when a dollar value is negative.

The only solution I've found was to use the formatter of the column to create a string for a span that has the class based on the value passed in. I figure there has to be a better way.

Phonology answered 31/3, 2010 at 14:24 Comment(0)
C
9

When specifying the structure, you pass in an object that represents the widget configuration for a given column. As part of this object, include a formatter function in the definition:

{
...
 formatter: function(val, rowIdx, cell) {
    classes = compute_classes(val, rowIdx, cell);
    cell.customClasses.push(classes);
  }
}

however your 'compute_classes' computes the classes to use is up to you. They will be applied to the cell, and then you can manage their appearance in your CSS.

Cleanlimbed answered 1/4, 2010 at 13:24 Comment(1)
This almost worked for me. It could be because I'm running a newer version of Dojo. The value had to be returned or it would no be displayed. return val; after pushing the classes.Creepy

© 2022 - 2024 — McMap. All rights reserved.