`
hjy2099
  • 浏览: 261321 次
  • 性别: 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应该怎么写

相关推荐

    easyui datagrid排序图标

    然而,标题中提到的"easyui datagrid排序图标"是DataGrid的一个关键特性,因为它们能够帮助用户直观地识别出哪些列是可以进行排序操作的。 默认情况下,EasyUI DataGrid并不会自动显示排序图标。这意味着当用户首次...

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

    10. **在View中使用**:最后,在XAML的View文件中,将ViewModel绑定到DataGrid的`ItemsSource`,并使用`DataTemplate`和`DataGrid.Columns`属性来引用ViewModel中动态生成的列和编辑模板。 通过以上步骤,你就能在...

    C# DataGridView里添加小图标

    1. **使用`DataGridViewTextBoxColumn`添加图标** - 创建一个`DataGridViewTextBoxColumn`,并设置其`DefaultCellStyle`属性。`DefaultCellStyle`允许我们设置单元格的默认样式,包括字体、颜色和图像。 - 在`...

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

    在使用EasyUI开发Web应用时,常常会遇到datagrid表格中操作栏的按钮图标不显示的问题。这通常是由于jQuery EasyUI的自动渲染机制未能正确处理动态加载或Ajax加载的内容导致的。EasyUI Datagrid是一个功能丰富的表格...

    EasyUI DataGrid 添加工具

    本文将详细介绍如何在EasyUI DataGrid中添加工具栏,并对工具栏中的各个按钮属性进行解释。 #### 二、DataGrid工具栏属性详解 ##### 1. 工具栏(`toolbar`)属性 DataGrid插件提供了一个`toolbar`属性,用于定义...

    EasyUI DataGrid过滤用法实例

    在 DataGrid 中,启用过滤后,每列标题上会出现一个过滤图标,用户点击该图标可以打开过滤菜单,选择过滤条件。 `datagrid-filter.html` 文件则包含了 HTML 结构,通常会包含一个 `div` 元素,其 `id` 对应于 ...

    可删除列的datagrid

    标题中的“可删除列的datagrid”指的是在编程中,特别是在数据展示和操作的场景下,使用的一种组件或控件。Datagrid(数据网格)通常用于显示结构化的数据,如数据库表格,用户可以对其进行查看、编辑和操作。在这个...

    wpf 自定义ComBoBox带DataGrid

    在自定义的ComboBox中,我们可能会扩展其默认行为,例如添加搜索功能、自适应显示内容、或在下拉列表中集成更复杂的视图,如DataGrid。 **数据网格(DataGrid)**是用于显示和编辑结构化数据的控件,它允许用户对...

    使用DataGrid完成一个行级数据折叠收缩展示的功能

    6. **样式和模板**:为了提供更好的用户体验,可以定制行的样式,如添加折叠/展开图标,以及处理行的可见性。可以使用DataTrigger来根据IsExpanded属性改变行的可见性。 在实际编码中,这可能涉及到XAML和C#的混合...

    动态可编辑的DataGrid

    在Flex中,每个单元格都可以有自己的渲染器,通过渲染器我们可以自定义显示样式,比如添加颜色、图标或者复杂的布局。这个文件可能包含了创建和管理这些渲染器的方法。 `numLabel.as`可能是一个自定义的数字标签...

    C#DataGrid和ListView案例

    在实际应用中,DataGrid常用于业务系统中展示报表或记录数据,其特点在于强大的数据操作能力,比如行的添加、删除、编辑,以及列的排序和过滤。例如,"案例数据库"可能是模拟了一个数据库查询的结果,DataGrid控件...

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

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

    easyUI的dataGrid重画

    在本文中,我们将深入探讨如何在EasyUI框架中实现`dataGrid`的重画功能,特别是在自定义搜索框和调整默认按钮大小方面。EasyUI是一个基于jQuery的UI库,提供了丰富的组件,包括`dataGrid`,它是一个强大的数据展示...

    datagrid-detailview 将+号放在任意列的后面

    在`datagrid-detailview.js`文件中,我们可以期待找到这些函数的实现,以及可能与之相关的CSS样式以调整图标样式。 对于`datagrid-detailview`的自定义,开发者可能还需要考虑以下几点: - **响应式设计**:确保在...

    wpf datagrid排序列表头文字右边的升降箭头

    在Windows Presentation Foundation (WPF) 中,`DataGrid` 是一个强大的控件,常用于显示和操作表格数据。本教程将深入讲解如何实现`DataGrid`的列头排序功能,即点击列表头文字右边的升降箭头进行升序或降序排序。...

    EasyUI_05-datagrid-src.zip

    7. 自定义列:开发者可以自定义列的显示内容和格式,如添加图标、链接等。 8. 扩展性:可以集成其他EasyUI组件,如下拉框(combobox)、日期选择器(datebox)等,实现更复杂的功能。 在 "EasyUI_05-datagrid-src....

    easyui Basic DataGrid

    此外,DataGrid还支持更多的高级功能,如行选择事件、动态添加删除行等,这些将在后续的学习中进一步探索。 ### 总结 通过本示例的学习,我们可以了解到easyui DataGrid的基本用法和配置方法。对于前端开发者而言...

    Jquery-easyui的datagrid中文文档

    通过设定这一属性,可以为DataGrid添加一个描述性的标题,增强用户界面的可读性。 - **iconCls**:这是一个CSS类,用于提供一个背景图片作为标题图标。虽然默认值为`null`,但可以通过自定义一个包含适当图像的CSS...

    easyui-datagrid2-demo.zip

    - Datagrid 的列头可以根据需要自定义,包括显示字段名、宽度、对齐方式,甚至可以添加额外的图标或按钮。 7. **异步加载**: - Datagrid 支持懒加载,即当滚动到表格底部时自动加载更多数据,这在大数据量展示时...

Global site tag (gtag.js) - Google Analytics