Custom DataGrid headerRenderer based on Canvas

I ran into a problem that I’m still not sure what was happening today. I had something like this:

public class MyHeader extends Canvas
{

}

myDataGridColumn.headerRenderer = new ClassFactory( MyHeader );

It worked, but upon mouse over or mouse move it would flicker like crazy. Extending Label or Button works no problem. I tried implementing various interfaces like IDataRenderer, IDropInListItemRenderer, and IListItemRenderer but still had the same results.

A quick fix I found was to intercept and cancel those mouse events in my header class.

addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, true );
addEventListener(MouseEvent.MOUSE_MOVE, onMouseOver, true );

protected function onMouseOver(event:MouseEvent) : void
{
event.preventDefault();
}

Now everything seems to work fine. But I’m still at a loss on why this happened in the first place and I worry my hack of a fix is the wrong way to do it. Has anyone successfully gotten a custom header renderer based on a container working?

1 Response to “Custom DataGrid headerRenderer based on Canvas”


  1. 1 swienty1

    Hi,

    I have also a lot problems with custom header renderer based on a container. I was using BOX with PopUpButton. When I try change renderer on other, I can’t see popuppanel after click on PopUpButton. It’s strange …

Leave a Reply