Flex AdvancedDataGrid:如何设置摘要行的样式?
时间:2020-03-06 14:31:30 来源:igfitidea点击:
我有一个带有GroupingCollection和SummaryRow的AdvancedDataGrid。如何以粗体显示摘要行数据?下面是我的代码:
<mx:AdvancedDataGrid width="100%" height="100%" id="adg" defaultLeafIcon="{null}" >
<mx:dataProvider>
<mx:GroupingCollection id="gc" source="{dataProvider}">
<mx:Grouping>
<mx:GroupingField name="bankType">
<mx:summaries>
<mx:SummaryRow summaryPlacement="group" id="summaryRow">
<mx:fields>
<mx:SummaryField dataField="t0"
label="t0" operation="SUM" />
</mx:fields>
</mx:SummaryRow>
</mx:summaries>
</mx:GroupingField>
</mx:Grouping>
</mx:GroupingCollection>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="GroupLabel"
headerText=""/>
<mx:AdvancedDataGridColumn dataField="name"
headerText="Bank" />
<mx:AdvancedDataGridColumn dataField="t0"
headerText="Amount" formatter="{formatter}"/>
</mx:columns>
</mx:AdvancedDataGrid>
解决方案
如果我正确理解了文档,则应该能够通过在rendererProviders属性中指定项目渲染器,并使用虚拟dataField名称将摘要链接到rendererProvider来做到这一点。
http://livedocs.adobe.com/flex/3/html/help.html?content=advdatagrid_04.html应该会有所帮助。
过去,当我需要执行此操作时,我不得不在我的样式函数中添加一个条件,以尝试确定它是否为摘要行。
public function dataGrid_styleFunction (data:Object, column:AdvancedDataGridColumn) : Object
{
var output:Object;
if ( data.children != null )
{
output = {color:0x081EA6, fontWeight:"bold", fontSize:14}
}
return output;
}
如果有孩子,则应为摘要行。我不确定这是否是引用/取消引用的正确方法,但至少在我的使用中它确实有效。
高温超导
private function styleCallback(data:Object, col:AdvancedDataGridColumn):Object
{
if (data["city"] == citySel)
return {color:0xFF0000,backgroundColor:0xFFF552,
fontWeight:'bold',fontStyle:'italic'};
// Return null if the Artist name does not match.
return null;
}
我只想格式化分组字段,所以我在ADG上设置了styleFunction,然后在我的styleCallback()方法中检查了子行中存在但组标题中不存在的数据。
例如,我将Major标题作为分组,然后将数据行与Minor标题和描述等结合在一起。因此,在我的函数中检查:
如果(data [" MinorHeading"] == null)返回{color:0xFF0000,backgroundColor:0xFFF552,fontWeight:'bold'};
这样,只有我的组标题才会以红色和粗体显示。
仅供参考,backgroundColor样式不适用(我假设我需要纯色图形渲染器才能做到这一点)

