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