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样式不适用(我假设我需要纯色图形渲染器才能做到这一点)