如何禁用双击高级数据网格分组标题?

时间:2011-01-20 20:36:26

标签: flex grouping advanceddatagrid double-click selectable

我有一个高级数据网格,上面有一个分组。通过分组内部的项目,我可以设置双击项目的位置,它将创建一个允许用户编辑该条目的弹出窗口。我遇到的问题是我可以双击组标题,弹出窗口会激活空白信息。如何防止这种情况发生?

这是mxml代码

<mx:AdvancedDataGrid id="plugList" designViewDataType="tree" width="100%" height="100%" 
         initialize="gc.refresh();" doubleClickEnabled="true" itemDoubleClick="plugList_itemDoubleClickHandler(event)">
        <mx:dataProvider>
            <mx:GroupingCollection2 id="gc" source="{plugs}">
                <mx:grouping>
                    <mx:Grouping>
                        <mx:GroupingField name="traderTitle"/>
                    </mx:Grouping>
                </mx:grouping>
            </mx:GroupingCollection2>
        </mx:dataProvider>
        <mx:columns>
            <mx:AdvancedDataGridColumn headerText="Title" dataField="traderTitle"/>
            <mx:AdvancedDataGridColumn headerText="Anchor" dataField="traderAnchor"/>
            <mx:AdvancedDataGridColumn headerText="URL" dataField="url"/>
            <mx:AdvancedDataGridColumn dataField="status" headerText="Status" width="75"/>
        </mx:columns>
    </mx:AdvancedDataGrid>

2 个答案:

答案 0 :(得分:1)

event target不是单行而是整个datagrid组件,不能使用此对象。 如果selectionMode属性设置为singleRow(这是默认值),则可以使用selectedItem属性指向目标行。  然后,您可以检查children属性是否存在,以区分父节点和简单叶子。

这是一个简单的doubleClick侦听器函数示例:

protected function plugList_itemDoubleClickHandler(event:ListEvent):void
{
    if(((Object)(event.target.selectedItem)).hasOwnProperty('children')){
        trace('not a leaf');
    }else{
        Alert.show("Selected  "+event.target.selectedItem.desc);
    }   
}

的Davide

答案 1 :(得分:0)

这将在plugList_itemDoubleClickHandler函数中处理。有一个条件语句并查看event.target,不确定它的语法,但在调试模式下,你应该能够看到你可以看到的项目和标题之间的区别。如果是标题,请不要显示弹出窗口