`
hjy2099
  • 浏览: 255659 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

DataGrid 中加入图标

    博客分类:
  • Flex
阅读更多

最近研究一个 Flash 应用, 希望在 DataGrid 中加入图标. 查阅 Flash Help , 其中提到了 List.iconField 和 List.iconFunction , 但我只在 List 组件中试验成功, 虽然帮助中说 DataGrid 也继承了 List 的这两个属性(DataGrid 继承自 List), 但最终也没有实现.

于是问了一下 Google 大师, 找到了这个例子(下载), 是利用 List.cellRenderer 实现的, 通过研究实例, 偶还实现了

 

源码:

DataGrid.fla

/*
* DataGrid 中图标和进度条的实现
* Dofy
* 20070130
* dofyyu@gmail.com
*/
// 可编辑(为了方便看效果, 可以直接修改进度和状态值观察控件变化)
myGrid.editable = true;
// 表头
myGrid.addColumn("status");
myGrid.addColumn("title");
myGrid.addColumn("guage");
// 显示
myGrid.getColumnAt(0).headerText = "状态";
myGrid.getColumnAt(1).headerText = "标题";
myGrid.getColumnAt(2).headerText = "进度";
// 宽度
myGrid.getColumnAt(0).width = 70;
myGrid.getColumnAt(1).width = 180;
myGrid.getColumnAt(2).width = 100;
// cell renderer
/*
* 这里要特别说明一下
* 后面的 Icon 和 Guage 是库中的两个 MC
* 在 Renderer 文件夹中
* 这是两个 linkage name 分别是 Icon 和 Guage 的
* 分别继承自 IconCellRenderer 和 PerCellRenderer
* 这两个自定义类的空 MC
* 在库中相应的元件上单击右键, 查看 "链接..." 项可以看到相关内容
* ( 两个类的说明看 IconCellRenderer.as 文件 )
*/
myGrid.getColumnAt(0).cellRenderer = "Icon";
myGrid.getColumnAt(2).cellRenderer = "Guage";
// data
myGrid.addItem({status:"等待", title:"等待中的项目", guage:0});
myGrid.addItem({status:"失败", title:"失败的项目", guage:70});
myGrid.addItem({status:"完成", title:"完成的项目", guage:100});
myGrid.addItem({status:"我咧", title:"pulapula项目", guage:30});
// button
btn_change.onRelease = function() {
  myGrid.editField(0, "status", "完成");
  myGrid.editField(0, "guage", "100");
};

 

IconCellRenderer.as

// 引入类
import mx.core.UIComponent;
// 创建继承自 UIComponent 的类
class IconCellRenderer extends UIComponent {
  var Icon:MovieClip;
  function IconCellRenderer() {
    // nothing
  }
  private function createChildren(Void):Void {
    // 行被创建时触发
    trace("创建");
    Icon = createEmptyMovieClip("Icon", 1);
    Icon.createTextField("txt", 2, 20, 0, 50, 20);
    Icon.txt.selectable = false;
  }
  private function size(Void):Void {
    // 单元格大小被改变时触发
    trace("大小");
    //Icon.setSize(16, 16);
    Icon._x = 3;
    Icon._y = 2;
  }
  private function setValue(str:String, item:Object, sel:Boolean):Void {
    // 改变值时调用
    // str 是绑定该 CellRenderer 的单元的值
    // item 是整个行对象
    Icon._visible = (item != undefined);
    Icon.attachMovie(getIcon(item.status), "icon", 1);
    Icon.txt.text = str;
    size();
  }
  private function getIcon(str:String):String {
    // 这是一自定义函数
    switch (str) {
    case "等待" :
      return "icon_wait";
    case "完成" :
      return "icon_complete";
    case "失败" :
      return "icon_failed";
    default :
      return "icon_unknow";
    }
  }
}

 

分享到:
评论
1 楼 GapStar 2012-02-02  
换成flash IconCellRenderer.as应该怎么写

相关推荐

    MVVM实现WPF中DataGrid动态列与编辑器

    使用MVVM模式对WPF中的DataGrid控件动态添加列,并实现了编辑模式。

    EasyUI DataGrid 添加工具

    这个例子显示了如何添加工具栏 DataGrid插件有工具栏属性,这个属性可以定义工具栏。工具栏包括定义了下列属性的按钮: • text: 在按钮上显示的文本 • iconCls: 定义背景图标显示在按钮的左面的CSS类。 • ...

    easyui datagrid 行编辑中combogrid和combobox显示问题

    修改上一个资源版本中结束编辑时combobox显示问题. 1、类型为combogrid时每行的参数不同查询返回对应的数据结果。 2、类型为combobox时,输入框显示图标按钮,实现对应的事件。 3、解决类型为combobox显示为value而...

    asp.net c# 开发笔记2

    请去下载不要分数的(asp...5.6在DataGrid中添加链接图标 5.8 Js对话框的使用 5.9 控制页面的超时时间 5.10 页面间传递参数 5.11为按钮添加确认提示 5.12 DataGrid数据导出成word文档 5.13 DataGrid数据导出成Excel文档

    easyui datagrid 表格中操作栏 按钮图标不显示的解决方法

    jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染...以上这篇easyui datagrid 表格中操作栏 按钮图标不显示的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    jeasyui的dataGrid的打印和导出,jeasyui报表 table转成excel 实例下载

    iconCls: "icon-add", //图标 // collapsible: true, //隐藏按钮 //冻结列 // frozenColumns: [[{ field: "chk", "checkbox": true}]], //复选框 //列 rownumbers: false, //传输参数 queryParams: { "action...

    jQuery EasyUI 1.3.6 离线简体中文API文档

    linkbutton:添加图标对齐功能的完整支持,可用值有:“top”、“bottom”、“left”、“right”; linkbutton:添加“size”属性,可用值有:“small”、“large”; linkbutton:添加“onClick”事件; ...

    asp.net c# 开发笔记3

    谢谢大家的支持,以前发...5.6在DataGrid中添加链接图标 5.8 Js对话框的使用 5.9 控制页面的超时时间 5.10 页面间传递参数 5.11为按钮添加确认提示 5.12 DataGrid数据导出成word文档 5.13 DataGrid数据导出成Excel文档

    jquery-easyui-1.3.6.zip

    datagrid:添加"ctrlSelect"属性,允许使用ctrl+click 多选 slider:添加"converter"选项,允许用户决定如何将一个值转换为滑块的位置或滑块位置值。 searchbox:添加"disabled"属性。 searchbox:添加"disabled","enable...

    数据库设计与应用开发.docx

    武 汉 工 程 大 学 计算机科学与工程学院 数据库设计与应用开发全文共5页,... 对数据库中数据的添加: 在VB中新建一个窗体,如图所示。 在左侧工具中双击"Adodc控件"和"DataGrid控件"并将其放在合适的位置。 对"Adodc

    delphi 开发经验技巧宝典源码

    0204 如何在DataGrid中嵌入LookupComboBox 135 0205 在DBGrid中设置不滚动的列 136 0206 如何在DBGrid中实现复制、粘贴功能 137 0207 在DBGrid中将选中的多行删除 137 0208 在DataGrid中如何使标题文字居中...

    delphi 开发经验技巧宝典源码06

    0204 如何在DataGrid中嵌入LookupComboBox 135 0205 在DBGrid中设置不滚动的列 136 0206 如何在DBGrid中实现复制、粘贴功能 137 0207 在DBGrid中将选中的多行删除 137 0208 在DataGrid中如何使标题文字居中...

    .net技术资料大全(语言规范 源码教程 学习笔记 技术资料 .net代码生成器)

    将控件放到datagrid中以及修改列宽.txt 截取系统消息.txt 解决VS.NET使用中属性框不显示的问题.txt 里的InputBox.txt 模拟鼠标和键盘操作.txt 取CPU的序列号.txt 如何:在VisualC#.NET中建立一个平滑的进度条...

    ASP升级.net资料大全(c#入门 语言规范 源码教程 学习笔记 技术资料 面试题 asp与.net代码生成器)

    将控件放到datagrid中以及修改列宽.txt 截取系统消息.txt 解决VS.NET使用中属性框不显示的问题.txt 里的InputBox.txt 模拟鼠标和键盘操作.txt 取CPU的序列号.txt 如何:在VisualC#.NET中建立一个平滑的进度条...

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

    16.8.节使用ActionScript动态添加和去除图表中的列 16.9.节重叠多个图表 16.10.节拖曳图表中的项目 16.11.节创建一个可以编辑线状图 第十七章. 共享对象(557) 17.1节. 创建一个共享对象 17.2节. 写入数据到共享...

    数据库设计与应用开发.doc

    " "在"ODBC数据源管理器"中选择"系统DSN",点击"添加"按钮,出现"创建新数 " "据源页面",选择添加SQL Server。 " "在创建到SQL " "Server的新数据源中输入"数据源名称",选择我们需要的服务器类型。 " "4)在"创建...

    数据库设计与应用开发(1).doc

    " " " "在"ODBC数据源管理器"中选择"系统DSN",点击"添加"按钮,出现"创建新数 " "据源页面",选择添加SQL Server。 " " " " " "在创建到SQL " "Server的新数据源中输入"数据源名称",选择我们需要的服务器类型。 " ...

Global site tag (gtag.js) - Google Analytics