AdvancedDataGrid综合应用——自定义itemRenderer

这次我们主要讲述怎样使用项目渲染器(itemRenderer)来进一步美化AdvancedDataGrid控件。

AdvancedDataGridItemRenderer类是AdvancedDataGrid控件的默认项目渲染器。默认情况下,项目渲染器绘制与网格中各项相关联的文本。因为AdvancedDataGrid基于ListBase类,因此我们像创建其它ListBase类控件的项目渲染器一样自定义项目渲染器。

和DataGrid控件类似,我们可以对AdvancedDataGrid控件的列使用项目渲染器,但最好的方式是使用AdvancedDataGridRendererProvider实例,因为它定义了由AdvancedDataGrid 控件使用的单个项目渲染器的特征。使用AdvancedDataGridRendererProvider类的属性可配置AdvancedDataGrid 控件中使用项目渲染器的位置、应跨的列数、深度、用于创建项目渲染器的实例的ItemRenderer IFactory等。

在本例中,我们自定了一个AdvancedDataGridItemRenderer项目渲染器,它将性别字段数据渲染成表示性别的两张图片,而且该图片控件还有ToolTip功能。代码很简单,详见renderers\ADGItemRenderer.as。我们还自定了AdvancedDataGridGroupItemRenderer项目渲染器,它只是简单地画了一个有边线的矩形,弥补了由于分组列跨多列导致组项目之间没有边线的缺陷。详见renderers\ADGGroupItemRenderer。

本实例的难点在于怎样实现动态加载AdvancedDataGridRendererProvider实例。我们在profile.xml中新增了columnSpan属性,它对应AdvancedDataGridRendererProvider实例的columnSpan属性;新增renderer属性,它对应AdvancedDataGridRendererProvider实例的renderer属性。renderer属性是项目渲染器的限定类名。因此可以使用getDefinitionByName()方法返回其参数指定的类的类对象引用来动态加载AdvancedDataGridRendererProvider实例。

注意:在加载时我们还不得不声明相应的自定义的项目渲染器实例,不然会报错:Error #1065: 变量未定义。

点击此处查看本实例的效果,点击此处下载本实例的源码。

关于AdvancedDataGrid控件的美化就说这么多了,下次我们将讲解该控件的筛选功能。

评论: 1 | 引用: 0 | 查看次数: -
引用cssflex[2008-11-22 09:11 AM | 无网站 | 无Mail | 221.219.75.201 | 删除 | 取消审核 | 回复回复]
[正在加载评论信息,请稍候...]
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭