2013-01-18 176 views
0

如何在Flex中的AdvancedDataGridColumnGroup中包含的特定單元格內指定文本的顏色?代碼位於操作腳本中,文本顏色根據單元格所包含的值而不同。即如果它是負值,則它必須以紅色顯示,否則顯示爲黑色。AdvancedDataGridColumnGroup單元格顏色

請提及是否有任何工作!

謝謝!

回答

0

我已經完成了您所描述功能的示例。希望,這將有所幫助。

 <mx:AdvancedDataGrid id="grid" 
          itemRenderer="MyAdvancedDataGridItemRenderer" 
          dataProvider="{dataProvider}" 
          width="200" height="100%"> 

      <mx:groupedColumns> 
       <mx:AdvancedDataGridColumn dataField="name"/> 
       <mx:AdvancedDataGridColumn dataField="score"/> 
      </mx:groupedColumns> 
     </mx:AdvancedDataGrid> 

     <mx:Script> 
      <![CDATA[ 
       import mx.collections.ArrayCollection; 

       [Bindable] 
       private var dataProvider:ArrayCollection = new ArrayCollection([ 
        {name:"Name1", score:-12}, 
        {name:"Name2", score:10}, 
        {name:"Name3", score:-100}, 
       ]); 
      ]]> 
     </mx:Script> 
    </mx:Application> 

和類MyAdvancedDataGridItemRenderer.as:

package 
{ 
    import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer; 
    import mx.controls.advancedDataGridClasses.AdvancedDataGridListData; 

    public class MyAdvancedDataGridItemRenderer extends AdvancedDataGridItemRenderer 
    { 

     public function MyAdvancedDataGridItemRenderer() 
     { 
      super(); 
     } 

     override public function validateProperties():void 
     { 
      super.validateProperties(); 
      if (listData) 
      { 
       var item:Object = AdvancedDataGridListData(listData).item; 
       if (AdvancedDataGridListData(listData).dataField == "score") { 
        setStyle("color", item.score < 0 ? 0xff0000 : 0x000000); 
       } 
      } 
     } 
    } 

}