代码之家  ›  专栏  ›  技术社区  ›  asawilliams

flex-datagrid删除头mouseover突出显示

  •  1
  • asawilliams  · 技术社区  · 15 年前

    我想删除当鼠标悬停在DataGrid头上时发生的突出显示。

    4 回复  |  直到 12 年前
        1
  •  1
  •   Kyle    13 年前

    也许下面的黑客会帮上忙。 我只想从数据报头(flex 3)中删除滚动和选择。

    我做了什么:

    1)创建DataGridHeader的新子类并重写DrawHeaderIndicator和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)创建一个新的DataGrid子类-比如说MyDataGrid,在构造函数中执行以下操作:

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

    这将强制DataGrid使用DataGridHeader。

        2
  •  2
  •   Darren user513543    12 年前

    如果不需要对该列进行排序,只需将Sortable设置为false,鼠标悬停时它就不会突出显示。

        3
  •  0
  •   invertedSpear    15 年前

    这可能有助于您:

    http://jcraane.blogspot.com/2009/10/flex-how-to-create-different-rollover.html

    基本上我发现你不能改变它。它需要扩展header类和其他一些我还不知道如何做的事情。

        4
  •  0
  •   seismael    14 年前

    不要忘记在mydatagrid文件中添加此导入

    导入mx.core.mx_internal;

    非常好,谢谢。