2009-05-13 9 views
0

Ich habe ein funktionierendes Datagrid, das auf itemClick-Ereignisse reagiert. Alles funktioniert, außer dass es auch das itemClick-Ereignis auslöst, wenn auf die Header geklickt wird. Anstatt die Rasterdaten zu sortieren, lösen sie das Ereignis aus, das den Zustand ändert. Ich möchte nur, dass das Klickereignis auf die angeklickten Zeilen reagiert, nicht auf die Header.Reagieren auf ItemClick-Ereignisse in Zeilen, nicht die Kopfzeilen

Ich habe überall gegoogelt und durchwühlte meine Bücher und jedes Beispiel i scheint gesehen habe, zu arbeiten, so frage ich mich, was ich hier falsch mache:

<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:

Die Ein echtes Problem waren meine Cache-Einstellungen. Ich habe mit einer zwischengespeicherten Version gearbeitet, die anstelle von itemClick ein Klickereignis hatte. Das Click-Ereignis reagiert also auf alle Klicks im Grid und ItemClick funktioniert wie gewünscht. Ich musste lediglich meinen Cache ausschalten. Bonehead meinerseits, aber danke für die Hilfe.

Antwort

2

Wie wäre es mit dem Hinzufügen der folgenden in Ihrem Event-Handler?

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

danke, das hat wie ein Charme funktioniert! aber es stellt sich der Hauptschlüssel heraus, dass ich eine zwischengespeicherte Vorlage hatte, die ein click -Ereignis anstelle von itemClick hatte, also würde deine Lösung funktionieren, hätte ich geklickt und den Cache ausgeschaltet LOL Wenn der Cache ausgeschaltet ist, funktioniert itemClick gut. Trotzdem danke! – ethyreal

Verwandte Themen