R – Flex DataGrid Remove Header MouseOver Highlighting

apache-flexdatagrid

I want to remove the highlight that occurs when mouse over occurs on the headers of a DataGrid.

Best Answer

Maybe the following hack will help someone. I simply wanted to remove the rollover and selection from datagrid header (flex 3).

What I made:

1) Create a new subclass of DataGridHeader and override drawHeaderIndicator and drawSelectionIndicator

package
{
 import flash.display.Sprite;

 import mx.controls.dataGridClasses.DataGridHeader;
 import mx.controls.listClasses.IListItemRenderer;

 public class MyDataGridHeader extends DataGridHeader
 {
  public function MyDataGridHeader()
  {
   super();
  }

  override protected function drawHeaderIndicator(indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void
  {

  }

  override protected function drawSelectionIndicator(indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void
  {

  }
 }
}

2) Create a new subclass of DataGrid - lets say MyDataGrid and in constructor do the following:

public function MyDataGrid()
  {
   super();
   this.mx_internal::headerClass = MyDataGridHeader;
   ....
  }

This will force DataGrid to use your DataGridHeader.

Related Topic