2009-12-16 57 views

回答

1

也許下面的黑客會幫助別人。 我只是想從datagrid頭部(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。

+0

感謝您的答案,您可以格式化您的代碼部分的答案? – asawilliams 2010-05-04 23:25:30

+0

一定要導入適當的類幷包含名稱空間或上面的代碼將不會編譯。 import mx.core.mx_internal; 使用命名空間mx_internal; – 2010-06-07 19:53:55

2

如果您不需要對該列進行排序,只需將sortable設置爲false,並且它不會在鼠標懸停時高亮顯示。

0

不要忘記添加此導入在MyDataGrid文件

進口mx.core.mx_internal;

完美謝謝。

+0

如果這是對答案的迴應,請放置在評論中,而不是創建新的答案。 – asawilliams 2010-11-19 17:51:25