- 浏览: 591519 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wzh051527:
我是大四实习生一个,自我感觉技术能力在第三年。。唯一不明白,为 ...
十年技术,不要再迷茫 -
room_bb:
.hrl文件怎么加入到编译规则里面?比如:pp.hrl文件-d ...
Erlang中用的makefile的一点解释 -
吉米家:
感觉帆软报表的flash打印就很不错哇,特别好用
JSP 实现报表打印 -
雪碧爱芬达:
苦逼程序员的辛酸反省与总结 -
mlyjxx:
...
十年技术,不要再迷茫
package cw.controls { import fl.controls.DataGrid; import flash.events.MouseEvent; import fl.controls.dataGridClasses.HeaderRenderer; import flash.events.Event; import fl.controls.dataGridClasses.DataGridColumn; import flash.display.Sprite; import fl.controls.listClasses.CellRenderer; import flash.display.DisplayObject; /** * @author 25swf * @site www.25swf.com */ public class DataGrid25 extends DataGrid { private var current_moveing_header : HeaderRenderer; private var current_moveing_row : Sprite; private var drop_column_id : int = -1; private var current_highLine : Sprite; private var current_selected_row : int = -1; public var highLineColor : Number = 0xFF0000; public var highLineBold : Number = 2; private var m_moverow : Boolean = true; private var m_movecolumn : Boolean = true; /** * 获取是否可以移动row */ public function get moverow() : Boolean { return m_moverow; } /** * 设置是否可以移动row */ public function set moverow(_b : Boolean) : void { m_moverow = _b; } /** * 获取是否可以移动列 */ public function get movecolumn() : Boolean { return m_movecolumn; } /** * 设置是否可以移动列 */ public function set movecolumn(_b : Boolean) : void { m_movecolumn = _b; } public function DataGrid25() { this.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); } private function onMouseDown(e : MouseEvent) : void { if(e.target is HeaderRenderer && m_movecolumn) { var tempHeaderRender : HeaderRenderer = HeaderRenderer(e.target); stage.addChild(tempHeaderRender); tempHeaderRender.scaleX = 0.5; tempHeaderRender.scaleY = 0.5; tempHeaderRender.x = stage.mouseX + 2; tempHeaderRender.y = stage.mouseY + 2; current_moveing_header = tempHeaderRender; tempHeaderRender.startDrag(); this.invalidate(); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); }else if(e.target is CellRenderer && m_moverow) { var tempCellRenderer : CellRenderer = CellRenderer(e.target); current_selected_row = tempCellRenderer.listData.row; stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); var tempDataGrid : DataGrid = new DataGrid(); tempDataGrid.headerHeight = 0; tempDataGrid.width = this.width; tempDataGrid.height = this.rowHeight; tempDataGrid.columns = this.columns; tempDataGrid.addItem(this.getItemAt(current_selected_row)); var tempSprite : Sprite = new Sprite(); tempSprite.addChild(tempDataGrid); tempSprite.scaleX = 0.5; tempSprite.scaleY = 0.5; tempSprite.x = stage.mouseX + 2; tempSprite.y = stage.mouseY + 2; stage.addChild(tempSprite); tempSprite.startDrag(); current_moveing_row = tempSprite; } } private function onMouseUp(e : Event = null) : void { if(current_moveing_header != null) { if(drop_column_id != -1) { var tempColumn : DataGridColumn = this.getColumnAt(current_moveing_header.column); this.removeColumnAt(current_moveing_header.column); this.addColumnAt(tempColumn, drop_column_id); } current_moveing_header.stopDrag(); stage.removeChild(current_moveing_header); current_moveing_header = null; this.invalidateList(); } clearHighLine(); if(current_selected_row != -1) { current_selected_row = -1; clearRowCopy(); } stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); this.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); } private function onMouseOver(e : Event) : void { if(e.target is HeaderRenderer && current_moveing_header != null) { var tempHeaderRender : HeaderRenderer = HeaderRenderer(e.target); if(drop_column_id == tempHeaderRender.column) { //如果是同一个,则可以直接终止往下执行了 return; } drop_column_id = tempHeaderRender.column; //清除高亮 clearHighLine(); //高亮列 var mySprit : Sprite = new Sprite(); mySprit.graphics.lineStyle(highLineBold, highLineColor); mySprit.graphics.drawRect(0, 0, tempHeaderRender.width, this.height); mySprit.x = tempHeaderRender.x; current_highLine = mySprit; this.addChild(mySprit); }else { clearHighLine(); drop_column_id = -1; } if(e.target is CellRenderer && current_selected_row != -1) { var tempCellRenderer : CellRenderer = CellRenderer(e.target); if(current_selected_row == tempCellRenderer.listData.row) { //如果是同一个,则可以直接终止往下执行了 return; } if(current_selected_row > tempCellRenderer.listData.row) { this.addItemAt(this.getItemAt(current_selected_row), tempCellRenderer.listData.row); this.removeItemAt(current_selected_row + 1); } else { this.addItemAt(this.getItemAt(current_selected_row), tempCellRenderer.listData.row + 1); this.removeItemAt(current_selected_row); } current_selected_row = tempCellRenderer.listData.row; } } /** * 清除高亮 */ private function clearHighLine() : void { if(current_highLine != null && current_highLine.parent != null) { current_highLine.parent.removeChild(current_highLine); current_highLine = null; } } /** * 清除ROW的复制品 */ private function clearRowCopy() : void { if(current_moveing_row != null && current_moveing_row.parent != null) { current_moveing_row.parent.removeChild(current_moveing_row); current_moveing_row = null; } } } }
发表评论
-
as3 Loader 加载资源后内存泄露无法释放的问题。
2014-06-21 10:30 675as3 Loader 加载资源后内存泄露无法释放的问题。 ... -
as3判断flash player版本的函数
2014-06-10 20:35 835//判断当前版本是否高于9.0.115.0为例子. pr ... -
CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
2014-04-03 15:25 1019华文细黑:STHeiti Light [STXihei]华文 ... -
as3.0的垃圾回收机制
2013-09-07 14:02 1501还是同样的博客,还是同样的作者(Daniel Sidhio ... -
AIR程序多开
2013-09-07 13:55 1003AIR应用通常不能像QQ那样能进行多开操作。为了让一个用AI ... -
starling性能优化总结
2013-07-22 14:06 1472在项目开发的过程中总结了一下starling的性能优化方案: ... -
AS3 Socket从零开始
2013-07-22 12:54 1099大家如果想学AS3 Socket直接在百度里搜一下,会找到很 ... -
绕开AS3安全沙箱 跨域加载SWF
2013-07-11 12:53 909AS3的安全沙箱的确是 ... -
解决AS3在ie中初始化时stageWidth和stageHeight为0
2013-06-14 09:23 1012先看下面的一段脚本,这是比较经典的初始化脚本: pac ... -
动态获取swc中的类
2013-05-25 10:32 949想通过代码生成,来获取swc中的类,并且可以作为普通类正常使 ... -
AS3 中字符串的format功能实现
2013-05-25 10:19 835使用C#的朋友都知道,string.Format();还是挺 ... -
总结调用Flash的几种方法
2013-05-02 16:18 1663一、Adobe 提供的方法 <object wi ... -
Flash3D错误集锦
2013-05-02 14:03 935VerifyError: Error #1014: 无法找到 ... -
使用scale拉伸之后的坐标问题
2013-04-12 09:38 1287最近发现论坛多了很多 ... -
30个实用的网页设计工具
2013-03-20 09:58 818作为一位网页设计师或开发者,你一直需要搜寻获取强大的网页设计 ... -
如何成为强大的程序员?
2013-03-11 11:27 726Aaron Stannard是新创公 ... -
漫谈重构
2013-03-11 11:09 856因为工作内容的原因, ... -
AS3使用谷歌API生成二维码
2012-12-10 16:24 1354二维码在新闻杂志,网站,网络广告,电视广告等地方随处可见 ... -
OOP的聚合原则
2012-12-10 16:21 926什么是聚合? 聚合可以很好地表达对象是什么和做 ... -
压缩速率追踪
2012-11-02 14:16 1453Flash Player 11.3添加了一个压缩和解压B ...
相关推荐
在IT领域,自定义Datagrid是一项常见的需求,尤其是在开发数据密集型应用时。Datagrid是一种用于展示和操作表格数据的控件,它允许用户以视觉上友好的方式查看和交互大量结构化的信息。本资源围绕C#语言环境下的...
在本文中,我们将深入探讨Silverlight中的自定义DataGrid实现,以及如何利用Grid控件来构建这样一个功能。Silverlight是一种由Microsoft开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、视觉效果丰富...
这个主题——"flex 自定义 datagrid 列头带组合框进行过滤",涉及到的关键知识点包括Flex组件定制、DataGrid列头的扩展以及ComboBox控件的使用。 1. Flex组件定制: 在Flex中,我们可以使用MXML和ActionScript来...
总的来说,通过自定义DataGrid的渲染器,我们可以实现更灵活的数据显示效果。在这个例子中,我们学会了如何根据数据的值动态改变单元格的颜色,增强了用户界面的交互性和可视化效果。这种技术在数据监控、报表展示等...
ASP.NET 中自定义 DataGrid 分页设置的实现 在 ASP.NET 中,DataGrid 是一个常用的控件,用于显示数据列表。然而,DataGrid 的分页设置是 ASP.NET 开发中最常见的问题之一。在本文中,我们将实现 DataGrid 的个性化...
"Grid(6)[自定义DataGrid-强制显示分列线(在不显示列头时)]"这个标题表明我们正在讨论一个关于数据网格(DataGrid)的自定义实现,具体是针对Flex或Flash环境中的MXML组件。这里的“Grid(6)”可能指的是该系列教程的...
本文将深入探讨如何在Flex中自定义Datagrid的ItemRender,以实现按钮、单选、复选和日期等控件的集成。 首先,我们需要了解ItemRender的基本概念。ItemRenderer是Flex提供的一种机制,允许开发者为数据网格中的每一...
本话题将深入探讨如何自定义DataGrid的分页块,实现一个完美的分页效果。 DataGrid的分页功能默认提供了一些基本选项,如每页显示的记录数和页码导航。然而,这些默认设置可能无法满足所有需求,比如自定义样式、...
Flex 自定义DataGrid,带增删改查等各种功能.列锁定,序号等各种功能.
### 自定义 DataGrid 控件详解 #### 一、引言 在软件开发过程中,数据展示是常见需求之一,而 DataGrid 控件因其直观且灵活的特点成为开发者们的首选。本文将基于给定的部分内容,深入探讨如何自定义 DataGrid ...
WPF中DataGrid控件有时需要在一列中显示多个字段数据,并实现一定的排版,本示例即为解决此类问题提供参考。
自定义DataGrid样式可以帮助开发者根据应用程序的需求调整控件的外观和交互方式,使其更符合用户界面的设计规范。下面我们将深入探讨如何自定义DataGrid样式及其相关的知识点。 1. **创建资源字典** 自定义...
本文将深入探讨如何在移动环境下,针对.NET Compact Framework实现一个自定义的`DataGrid`控件,以实现个性化显示,包括编辑、下拉列表和选择框等功能。 首先,`NorthwindDataSet.Designer.cs`文件通常包含了对...
在Flex编程中,自定义DataGrid是常见的需求,特别是在处理大量数据并需要提供用户友好的交互体验时。本文将深入探讨如何在Flex中实现自定义的DataGrid,以支持复选框选择和分页功能。 首先,让我们了解Flex ...
Jquery自定义插件经典参考,为个人在项目开发中依据需要定制开发基于html代码...一行 dataGrid = $("#dg").xpDataGrid({"bgcolor":"blue","rowWidth":50,"rowHeight":22});即可达到效果。即查学习的经典与实用的经典。
DataGrid中的模板列(DataGridTemplateColumn)允许开发者自定义单元格的显示和交互方式。通过模板列,我们可以使用DataTemplate来指定列的视觉树结构,从而展示复杂的数据模型或者嵌入自定义控件。例如,你可以创建...
在默认情况下,`DataGrid` 提供了基本的样式和布局,但为了满足特定的界面设计需求,我们往往需要对它进行自定义。本篇文章将详细介绍如何利用 WPF 的 `ControlTemplate` 对 `DataGrid` 进行自定义样式,以及如何为...
首先,这个自定义datagrid控件可能涉及以下关键知识点: 1. **窗口消息处理**:C++中,控件的操作是基于Windows消息机制的,如WM_PAINT用于绘制,WM_SIZE用于处理窗口大小变化等。开发者需要理解并处理这些消息以...
自定义DataGrid单元格格式化主要通过以下几种方式实现: 1. **CellFormatting事件**:这是DataGrid控件提供的一个关键事件,当单元格即将显示时触发。在事件处理程序中,你可以访问到单元格的值、列信息和行信息,...