加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex中AdvancedDataGrid上的TreeColumn的ItemRenderer

发布时间:2020-12-15 01:48:38 所属栏目:百科 来源:网络整理
导读:是否可以将渲染器用于高级数据网格中的树列并仍然保持层次结构功能?如果我使用渲染器提供程序,则会丢失树下拉列表的箭头.我想保留树功能并更改列的显示.(而不仅仅是文件夹图像) mx:AdvancedDataGridRendererProvider column="{titleCol}" depth="1" rendere
是否可以将渲染器用于高级数据网格中的树列并仍然保持层次结构功能?如果我使用渲染器提供程序,则会丢失树下拉列表的箭头.我想保留树功能并更改列的显示.(而不仅仅是文件夹图像)

<mx:AdvancedDataGridRendererProvider column="{titleCol}" depth="1"
        renderer="com.something.titleColumnRenderer"/>

titleColumnRenderer:

<mx:VBox width="100%" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Label id="titleLabel" textAlign="center" text="sometext" width="100"/></mx:VBox>

解决方法

以下是我为实现这一目标所做的工作:

>创建一个扩展AdvancedDataGridGroupItemRenderer的类
>在新类中重写updateDisplayList并执行您需要执行的操作
>将新类分配给AdvancedDataGrid的groupItemRenderer属性

这是你的新课程的样子

public class CustomGroupRenderer extends AdvancedDataGridGroupItemRenderer
{
    override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void
    {
        super.updateDisplayList(unscaledWidth,unscaledHeight);

        var listData:AdvancedDataGridListData = listData as AdvancedDataGridListData;
        var advancedDataGrid:AdvancedDataGridDataGrid = listData.owner as AdvancedDataGrid;

        var cellBackgroundColor:uint = 0xFF0000;

        var g:Graphics = graphics;
        g.clear();

        if (!advancedDataGrid.isItemSelected(data) && !advancedDataGrid.isItemHighlighted(data))
        {
            g.beginFill(cellBackgroundColor);
            g.drawRect(0,unscaledWidth,unscaledHeight);
            g.endFill();
        }
    }
}

然后将此类分配给AdvancedDataGrid的groupItemRenderer属性:

<mx:AdvancedDataGrid groupItemRenderer="com.whereever.CustomGroupRenderer"/>

或者,在ActionScript中:

myAdvancedDataGrid.groupItemRenderer = new ClassFactory(com.whereever.CustomGroupRenderer);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读