I'm having a problem with red borders drawn around a cell in the DataGrid.

I have a custom itemRenderer which extends HBox and impements
IDropInListItenRenderer

In the set data() method, I set errorString based on conditions in the data.
The errorString is either set to null or a non-blank string.
In the same set data() method, I also call the super class
invalidateProperties and invalidateDisplayList methods.

For reasons, I don't understand teh parent HBox class does not draw the
border when the borderColor is set to errorColor. So I modified
the updateDisplayList() method of my custom renderer to say - if (
getStyle("borderColor") == getStyle("errorColor") ) then draw a border
myself using the errorColor (defaults to red).

So far so good.

But I have two problem symptoms:

1. If I correct the error in the underlying data, the red border remains
around the cell even though I've verified that my code is NOT drawing
it, and the "borderColor" style is no longer "red"

2. If I start scrolling around in the grid, other cells without errors are
getting a red border.

I understand that the grid recycles instances of itemRenderers for
performance reasons, so I suspect that fixing root cause of #1 will fix #2.
But I'm at a loss as to what to do about #1.

Suggestions appreciated.

Thanks,
Glenn

Reply via email to