2009-05-13 6 views
0

J'ai une grille de données fonctionnelle qui répond aux événements itemClick. Tout fonctionne, sauf qu'il déclenche également l'événement itemClick lorsque les en-têtes sont cliqués. Ainsi, au lieu de trier les données de la grille, ils déclenchent l'événement qui change l'état. Je souhaite uniquement que l'événement click réponde aux lignes sur lesquelles vous cliquez, et non aux en-têtes.Réponse aux événements ItemClick dans les lignes, pas dans les en-têtes

Je googled partout et creusé dans mes livres et tous les exemples que j'ai vu semble fonctionner, alors je me demande ce que je fais mal ici:

<mx:Script> 
     <![CDATA[ 

      [Bindable] 
      public var acPrograms:ArrayCollection; 



      private function showGameDetail(event:ListEvent):void { 
       var programEvent:ProgramsEvent = new ProgramsEvent(ProgramsEvent.SHOW_DETAIL); 
       programEvent.selectedProgram = TvPrograms(event.currentTarget.selectedItem); 
       dispatchEvent(programEvent); 

       currentState = "details"; 
      } 

     ]]> 
    </mx:Script>   
    <mx:DataGrid id="gamesGrid" height="270" dataProvider="{acPrograms}" 
      itemClick="showGameDetail(event);"> 
      <mx:columns> 
       <mx:DataGridColumn headerText="Date" dataField="dateOutput" width="90" /> 
       <mx:DataGridColumn headerText="Time" dataField="startTime" width="70" /> 
       <mx:DataGridColumn headerText="Title" dataField="subTitle" width="360" /> 
       <mx:DataGridColumn headerText="Channel" dataField="channel" width="80" /> 
       <mx:DataGridColumn headerText="Provider" dataField="provider" width="100" /> 
      </mx:columns> 
     </mx:DataGrid> 

Edit:

Le Le vrai problème ici était mes paramètres de cache. Je travaillais avec une version en cache qui avait un événement click au lieu d'un itemClick. Donc, l'événement click répond à tous les clics sur la grille et l'itemClick fait comme désiré, tout ce que je devais faire était de désactiver mon cache. Bonehead de ma part, mais merci pour l'aide. Que pensez-vous de l'ajout de ce qui suit dans votre gestionnaire d'événements?

Répondre

2

if (event.rowIndex < 0) 
    return; 
+0

merci, cela a fonctionné comme un charme! mais il s'avère que la clé principale était que j'avais un modèle en cache qui avait un événement de clic au lieu de itemClick afin que votre solution fonctionne si j'avais cliqué et le cache éteint LOL Avec le cache hors de l'itemClick fonctionne très bien. Merci quand même! – ethyreal

Questions connexes