最近研究一个 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";
}
}
}
分享到:
相关推荐
然而,标题中提到的"easyui datagrid排序图标"是DataGrid的一个关键特性,因为它们能够帮助用户直观地识别出哪些列是可以进行排序操作的。 默认情况下,EasyUI DataGrid并不会自动显示排序图标。这意味着当用户首次...
10. **在View中使用**:最后,在XAML的View文件中,将ViewModel绑定到DataGrid的`ItemsSource`,并使用`DataTemplate`和`DataGrid.Columns`属性来引用ViewModel中动态生成的列和编辑模板。 通过以上步骤,你就能在...
1. **使用`DataGridViewTextBoxColumn`添加图标** - 创建一个`DataGridViewTextBoxColumn`,并设置其`DefaultCellStyle`属性。`DefaultCellStyle`允许我们设置单元格的默认样式,包括字体、颜色和图像。 - 在`...
在使用EasyUI开发Web应用时,常常会遇到datagrid表格中操作栏的按钮图标不显示的问题。这通常是由于jQuery EasyUI的自动渲染机制未能正确处理动态加载或Ajax加载的内容导致的。EasyUI Datagrid是一个功能丰富的表格...
本文将详细介绍如何在EasyUI DataGrid中添加工具栏,并对工具栏中的各个按钮属性进行解释。 #### 二、DataGrid工具栏属性详解 ##### 1. 工具栏(`toolbar`)属性 DataGrid插件提供了一个`toolbar`属性,用于定义...
在 DataGrid 中,启用过滤后,每列标题上会出现一个过滤图标,用户点击该图标可以打开过滤菜单,选择过滤条件。 `datagrid-filter.html` 文件则包含了 HTML 结构,通常会包含一个 `div` 元素,其 `id` 对应于 ...
标题中的“可删除列的datagrid”指的是在编程中,特别是在数据展示和操作的场景下,使用的一种组件或控件。Datagrid(数据网格)通常用于显示结构化的数据,如数据库表格,用户可以对其进行查看、编辑和操作。在这个...
在自定义的ComboBox中,我们可能会扩展其默认行为,例如添加搜索功能、自适应显示内容、或在下拉列表中集成更复杂的视图,如DataGrid。 **数据网格(DataGrid)**是用于显示和编辑结构化数据的控件,它允许用户对...
6. **样式和模板**:为了提供更好的用户体验,可以定制行的样式,如添加折叠/展开图标,以及处理行的可见性。可以使用DataTrigger来根据IsExpanded属性改变行的可见性。 在实际编码中,这可能涉及到XAML和C#的混合...
在Flex中,每个单元格都可以有自己的渲染器,通过渲染器我们可以自定义显示样式,比如添加颜色、图标或者复杂的布局。这个文件可能包含了创建和管理这些渲染器的方法。 `numLabel.as`可能是一个自定义的数字标签...
在实际应用中,DataGrid常用于业务系统中展示报表或记录数据,其特点在于强大的数据操作能力,比如行的添加、删除、编辑,以及列的排序和过滤。例如,"案例数据库"可能是模拟了一个数据库查询的结果,DataGrid控件...
修改上一个资源版本中结束编辑时combobox显示问题. 1、类型为combogrid时每行的参数不同查询返回对应的数据结果。 2、类型为combobox时,输入框显示图标按钮,实现对应的事件。 3、解决类型为combobox显示为value而...
在本文中,我们将深入探讨如何在EasyUI框架中实现`dataGrid`的重画功能,特别是在自定义搜索框和调整默认按钮大小方面。EasyUI是一个基于jQuery的UI库,提供了丰富的组件,包括`dataGrid`,它是一个强大的数据展示...
在`datagrid-detailview.js`文件中,我们可以期待找到这些函数的实现,以及可能与之相关的CSS样式以调整图标样式。 对于`datagrid-detailview`的自定义,开发者可能还需要考虑以下几点: - **响应式设计**:确保在...
在Windows Presentation Foundation (WPF) 中,`DataGrid` 是一个强大的控件,常用于显示和操作表格数据。本教程将深入讲解如何实现`DataGrid`的列头排序功能,即点击列表头文字右边的升降箭头进行升序或降序排序。...
7. 自定义列:开发者可以自定义列的显示内容和格式,如添加图标、链接等。 8. 扩展性:可以集成其他EasyUI组件,如下拉框(combobox)、日期选择器(datebox)等,实现更复杂的功能。 在 "EasyUI_05-datagrid-src....
此外,DataGrid还支持更多的高级功能,如行选择事件、动态添加删除行等,这些将在后续的学习中进一步探索。 ### 总结 通过本示例的学习,我们可以了解到easyui DataGrid的基本用法和配置方法。对于前端开发者而言...
通过设定这一属性,可以为DataGrid添加一个描述性的标题,增强用户界面的可读性。 - **iconCls**:这是一个CSS类,用于提供一个背景图片作为标题图标。虽然默认值为`null`,但可以通过自定义一个包含适当图像的CSS...
- Datagrid 的列头可以根据需要自定义,包括显示字段名、宽度、对齐方式,甚至可以添加额外的图标或按钮。 7. **异步加载**: - Datagrid 支持懒加载,即当滚动到表格底部时自动加载更多数据,这在大数据量展示时...