`

AdvancedDatagrid改变行的颜色

    博客分类:
  • Flex
 
阅读更多

最早我尝试重写AdvancedDatagrid的drawRowBackGrounds方法,如下:

 

override protected function drawRowBackground(s:Sprite,rowIndex:int,y:Number, height:Number, color:uint, dataIndex:int):void 

if(dataProvider){

var hcv:HierarchicalCollectionView = dataProvider as HierarchicalCollectionView ;

var hd:HierarchicalData = hcv.source as HierarchicalData ;

var ac:ArrayCollection = hd.source as ArrayCollection ;

if(ac.length > 0 && dataIndex < ac.length){

var item:AlarmVO = ac[dataIndex] as AlarmVO ;

if(item.activeStatus == "0"){

color = 0xCCCCCC ;

}

}

super.drawRowBackground(s, rowIndex, y, height, color, dataIndex);

}

}

 

存在问题:当有节点打开或关闭的时候,变灰的行是错误的。

 

改进方法来自这里http://www.forestandthetrees.com/2008/10/21/adg-color-rows-by-depth/

用到了之前没了解过的类 HierarchicalCollectionViewCursor 

 

override protected function drawRowBackground (s : Sprite,
            rowIndex : int, y : Number, height : Number, color : uint,
            dataIndex : int) : void
        {
              var dp:HierarchicalCollectionView = dataProvider as
                  HierarchicalCollectionView;
              //if the index is less than the length, the row has no data
              //content
              if (dp != null){
                  if (dataIndex < dp.length) {
                      var cursor : HierarchicalCollectionViewCursor =
                          dp.createCursor() as HierarchicalCollectionViewCursor;
                     cursor.seek(CursorBookmark.FIRST, dataIndex);
                     var o : Object = cursor.current;
                     switch (cursor.currentDepth) {
                         case 1:
                             color = 0xffcccc;
                             break;
                         case 2:
                             color = 0xccffcc;
                             break;
                         case 3:
                             color = 0xccccff;
                             break;
                     }
                  }
              }
              super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);
        }

 

分享到:
评论

相关推荐

    Flex应用AdvancedDataGrid表头皮肤

    3. **样式和主题**:在Flex中,我们可以使用CSS来设置AdvancedDataGrid的样式,包括表头的颜色、字体、间距等。Flex还支持主题(Theme),通过预定义的一系列样式和皮肤,可以快速改变整个应用程序的外观。例如, ...

    表格演示(1)AdvancedDataGrid应用

    同时,AdvancedDataGrid还允许自定义分组头部的显示,可以创建自定义的GroupHeaderRenderer来改变默认样式。 在高级特性中,AdvancedDataGrid的Drag-and-Drop功能使得用户能自由地调整数据项的位置,这对于需要动态...

    flex datagrid 改变

    例如,我们可能需要改变其外观,如单元格颜色、字体样式,或者添加自定义列头,甚至实现复杂的行或列行为。 描述中提到的“NULL 博文链接:https://cztxljf.iteye.com/blog/1267290”,虽然具体博文内容无法提供,...

    flex DataGrid 表头分组

    5. **样式和外观**:为了优化分组后的视觉效果,可能需要调整`AdvancedDataGrid`的样式,例如改变分组行的颜色、字体等。这可以通过CSS样式表或直接在MXML中设置`styleName`属性来完成。 在提供的文档《Flex_...

    flex 页面增删改以及柱形数据变化

    通过CSS或者直接在MXML中设定,我们可以改变组件的颜色、边框、阴影等视觉效果。例如,可以通过修改CSS类或使用states来改变数据项在选中或未选中时的背景色。 对于**柱形数据变化**,Flex的Charts组件提供了一种...

    flex控件讲解

    - 可以与事件监听器结合使用,以便在状态改变时执行某些操作。 - **应用场景**: - 适用于需要收集用户选择或偏好设置的场景。 ##### 8. ColorPicker - **简介**: - `ColorPicker` 控件允许用户从样本列表中...

    flex统计图 柱状 饼图折线

    Flex图表允许进行高度自定义,包括改变颜色、添加图例、设置数据标签、调整轴的范围和刻度等。例如,可以使用ChartStyle和ChartTheme类来更改图表的外观,或者通过Legend类添加图例。 5. **交互性**: Flex图表还...

    itemrenderer help

    通过编写ItemRenderer,可以实现对数据项的个性化展示,比如改变字体样式、颜色或者添加图片等元素,甚至可以是复杂的布局设计。 **2. ItemRenderer的工作原理** 当列表控件(如List、DataGrid等)需要显示数据时...

    Flex开发实例

    - Flex支持状态管理,允许应用程序根据用户操作动态改变界面布局。 **14. ActionScript基础知识** - ActionScript是Flex的核心脚本语言,用于实现交互性和动态功能。 **15. 导入ActionScript类到Flex** - 通过`...

    flex3的cookbook书籍完整版dpf(包含目录)

    使用ColorPicker设置Canvas颜色 2.4节. 使用SWFLoader载入SWF 2.5节. 设置组件的标签索引 2.6节. 设置控件的labelFunction 2.7节. 提供菜单数据 2.8. 动态填充菜单 2.9节. 为菜单类控件创建事件处理函数 2.10节. ...

    Flex开发实例--学习必备

    - 可以使用外部CSS文件或内联样式来改变组件的颜色、字体等。 #### 22. 数据验证 - Flex提供了内置的数据验证功能,可以确保用户输入的数据符合预期格式。 - 可以自定义验证规则,增强应用程序的健壮性。 #### 23....

    Flex4.5常见问题总结

    不过,某些特定功能可能仅在一套组件中提供,如Spark的3D效果和MX的数据可视化组件(DataGrid、AdvancedDataGrid)。 #### 三、组件层次结构与属性详解 Flex中所有可视化的对象最终继承自UIComponent。这一层次结构...

    Flex入门实例教程

    - **多页面(States)**:通过改变状态来模拟不同的界面布局。 #### 四、ActionScript基础知识 - **变量声明与类型**:ActionScript支持多种数据类型,包括整型、浮点型、布尔型等。 - **条件语句与循环**:`if......

    Flex 开发实例( ArcGIS)

    Flex支持CSS来定制应用程序的样式,包括颜色、字体、边框等。通过使用CSS,开发者可以更容易地控制应用程序的外观和感觉。 #### 22. 数据验证 Flex提供了内置的数据验证功能,可以在用户提交表单之前检查数据的...

Global site tag (gtag.js) - Google Analytics