2010-09-23 3 views
0

J'ai deux problèmes, dont le second est seulement un problème car c'est un moyen possible de réparer le premier!La sélection de cellules multiples Flex AdvancedDataGrid ne met pas complètement en surbrillance

Je développe une application Flex 4.1, en utilisant un thème Spark: Je ne peux pas les changer; Halo n'est pas une option.

Il offre la possibilité de remplir plusieurs cellules sélectionnées d'un AdvancedDataGrid avec un seul caractère, à partir d'une seule touche. Ainsi, l'utilisateur sélectionne ses cellules en utilisant la touche Maj, frappe H (par exemple) et voit toutes les cellules se mettre à jour avec H, sans utiliser d'itemEditor mais via les événements grid keyDown à la place. Ensuite, ils cliquent ailleurs et la sélection devrait disparaître.

Cependant, la sélection visible n'est pas entièrement effacée et les cellules nouvellement colorées ne changeront pas toutes de la couleur sélectionnée. Ci-dessous, je peux vérifier que la sélection a été effacée: mygrid.selectedCells est vide. Tout comportement indique ensuite une sorte de problème d'affichage avec la grille: Les cellules ne sont plus sélectionnées mais elles ont l'air d'être.

Après la pression de touche sur les cellules sélectionnées:

alt text

Après la clic de souris pour effacer la sélection:

alt text

Notez les colonnes en alternance: ce qui est toujours la comme ça arrive.

Ceci utilise le paramètre itemRenderer par défaut. Cela arrive toujours avec un itemRenderer personnalisé très basique mais je n'ai pas regardé plus bas car il y a une complication que je ne peux pas obtenir l'étiquette dans itemRenderer pour reconnaître backgroundAlpha afin que l'arrière-plan 'sélectionné' soit à peine visible. J'ai lu quelque part que c'est un problème avec Spark, et il est certainement vrai que si je retourne au rendu par défaut, tout va bien. Eh bien ... sauf pour ce problème de couleur de sélection.

Voilà comment il regarde avec le moteur de rendu personnalisé:

alt text

Si je me manque quelque chose d'évident, voici le itemRenderer j'ai essayé:

<?xml version="1.0" encoding="utf-8"?> 
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx" 
          focusEnabled="true" autoDrawBackground="true" 
          > 
    <s:layout> 
     <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/> 
    </s:layout> 
    <s:Label id="lblData" text="{listData.label}" backgroundAlpha="0"/> 
</s:MXAdvancedDataGridItemRenderer> 

Donc, en résumé: ce que je dois est un moyen de résoudre le problème de sélection multiple; le problème de rendu d'élément est seulement un problème si j'ai besoin d'un itemRenderer personnalisé pour corriger le problème de sélection.

Toute aide reçue avec gratitude.

Répondre

2

Cela semble être causé par Flashplayer 10.1. Vous trouverez tous les détails ici:

ADG selection bug

Il y a aussi une solution de contournement affichée dans les commentaires.

+0

Fantastique. Ce projet a brièvement été mis en attente, alors je vais essayer la semaine prochaine. – tridian

Questions connexes