2009-12-16 3 views

Répondre

1

Peut-être que le hack suivant aidera quelqu'un. Je voulais simplement supprimer le survol et la sélection de l'en-tête de DataGrid (flex 3).

Ce que je fait:

1) Créer une nouvelle sous-classe de DataGridHeader et de dérogation drawHeaderIndicator et 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) Créer une nouvelle sous-classe de DataGrid - permet de dire MyDataGrid et dans le constructeur procédez comme suit :

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

Cela forcera DataGrid à utiliser votre DataGridHeader.

+0

merci pour la réponse, pouvez-vous formater votre réponse pour les portions de code? – asawilliams

+0

Assurez-vous d'importer les classes appropriées et d'inclure l'espace de noms ou le code ci-dessus ne compilera pas. import mx.core.mx_internal; utilise l'espace de noms mx_internal; –

2

Si vous n'avez pas besoin de trier sur cette colonne, il suffit de définir la valeur de sortable sur false et elle ne sera pas mise en surbrillance au passage de la souris.

0

Ne pas oublier d'ajouter ce fichier à importer MyDataGrid

importation mx.core.mx_internal;

fonctionne parfaitement grâce.

+0

si cela est en réponse à la réponse, placez s'il vous plaît dans les commentaires au lieu de créer une nouvelle réponse. – asawilliams

Questions connexes