有人可以向我展示一个基本的例子,说明如何在flex中的数据网格中选择一行,并让它突出显示该行加上任何相关的行。让我举个例子:
假设我有一个数据网格。在网格中,每行有两列。一列拥有他们拥有的汽车类型,另一列拥有所有者名称。假设一个拥有者有两辆车。所以你有一个看起来像这样的数据网格(4行,2列):
Camery Jon
Tundra BillyJaguar Jon
Range Rover Mike
我正在寻找...如果您点击Camery行,Jaguar行和Camery行都会突出显示。
我有一个包含项目的数据网格,并且具有与其父项相关的项目。
由于
答案 0 :(得分:0)
答案 1 :(得分:0)
这是一个使用处理程序进行更改事件的快速而脏的实现:
private function onChange(e:ListEvent):void {
var dp:ArrayCollection = e.currentTarget.dataProvider as ArrayCollection;
var matches:ArrayCollection = new ArrayCollection();
for (var i:int = 0; i < dp.length; i++) {
if (dp[i].person == e.itemRenderer.data.person) {
matches.addItem(dp[i]);
}
}
(e.currentTarget as DataGrid).selectedItems = matches.source;
}
这是datagrid的MXML:
<mx:DataGrid change="onChange(event)">
<mx:dataProvider>
<s:ArrayCollection>
<fx:Object person="Jon" car="Camry"/>
<fx:Object person="Billy" car="Tundra"/>
<fx:Object person="Jon" car="Jaguar"/>
<fx:Object person="Mike" car="Range Rover"/>
</s:ArrayCollection>
</mx:dataProvider>
<mx:columns>
<mx:DataGridColumn dataField="person"/>
<mx:DataGridColumn dataField="car"/>
</mx:columns>
</mx:DataGrid>
希望有所帮助。