响应行中的ItemClick事件,而不是标题

时间:2009-05-13 23:12:13

标签: flex datagrid flex3

我有一个响应itemClick事件的功能数据网格。一切正常,除了它还会在单击标题时触发itemClick事件。因此,不是对网格数据进行排序,而是触发改变状态的事件。我想只让click事件响应被点击的行,而不是标题。

我到处搜索并搜遍了我的书籍,我见过的每一个例子似乎都有用,所以我想知道我在这里做错了什么:

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

编辑:

这里真正的问题是我的缓存设置。我正在使用具有click事件而不是itemClick的缓存版本。因此,click事件会响应网格上的所有点击,而itemClick会根据需要进行响应,我所需要的只是关闭我的缓存。对我来说是笨蛋,但感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

如何在事件处理程序中添加以下内容?

if (event.rowIndex < 0) 
  return;