- 浏览: 81270 次
- 性别:
- 来自: 四川
最新评论
-
iceblue510808:
你好,能给我发下你写的这个吗?想学习下,谢谢了Adobe Bu ...
Flex图文混排 -
sxy09:
diding 写道xingfustar 写道哥们,够狠,可以共 ...
Flex图文混排 -
sxy09:
给份源码吧,学习研究下 419119915@qq.com
Flex图文混排之后期开发 -
zhangxiaopei:
哥,你还在吗?能发一份源码给我吗?谢谢,不甚感激邮箱:zhan ...
Flex图文混排之后期开发 -
zhangxiaopei:
兄弟能给源码给我吗?谢谢邮箱zhangoceansoft@12 ...
Flex图文混排
目前能实现的功能:
1.支持编辑表头;
2.删除添加自动更新序号;
3.支持右键操作DataGrid表;
4.支持dg表返回xml字符串
图例:
例子:
MXML:
main.as
1.支持编辑表头;
2.删除添加自动更新序号;
3.支持右键操作DataGrid表;
4.支持dg表返回xml字符串
图例:
例子:
MXML:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();"> <mx:Script source="main.as"/> <mx:Style> Application{ font-size:12px; } </mx:Style> </mx:Application>
main.as
// ActionScript file import flash.events.ContextMenuEvent; import flash.events.MouseEvent; import flash.ui.ContextMenu; import flash.ui.ContextMenuItem; import mx.collections.ArrayCollection; import mx.containers.HBox; import mx.containers.VBox; import mx.controls.Alert; import mx.controls.Button; import mx.controls.DataGrid; import mx.controls.dataGridClasses.DataGridColumn; import mx.core.ClassFactory; import mx.events.DataGridEvent; import mx.events.FlexEvent; import mx.managers.PopUpManager; import net.diding.dgRender.DgHeaderTextRender; import net.diding.manager.EditDataGridManager; import net.diding.window.InsertDGColumnWindow; import net.diding.window.InsertDGRowWindow; private var MyDataDG:DataGrid; private var mainVBox:VBox; private var editDgManager:EditDataGridManager; private var myContextMenu:ContextMenu=new ContextMenu(); private function init():void { mainVBox=new VBox(); mainVBox.percentHeight=100; mainVBox.percentWidth=100; this.addChild(mainVBox) createDataGrid(mainVBox) var controlBox:HBox=new HBox(); controlBox.percentWidth=100; mainVBox.addChild(controlBox); var ViewBtn:Button=new Button(); ViewBtn.label="查看XML数据"; controlBox.addChild(ViewBtn); ViewBtn.addEventListener(MouseEvent.CLICK, ViewHandler) } private function createDataGrid(MainVBox:VBox):void { MyDataDG=new DataGrid(); editDgManager=new EditDataGridManager(); editDgManager.taget=MyDataDG; MyDataDG.editable=true; MyDataDG.sortableColumns=false MyDataDG.percentWidth=100; MyDataDG.setStyle("verticalAlign", "middle") MyDataDG.columns=myGridcolumns(); MainVBox.addChild(MyDataDG); ShowList(); } private function addDataGridMenuItems():void { myContextMenu.hideBuiltInItems(); var MenuList:Array=["删除行", "删除列", "插入行", "插入列"]; var separatorBeforeArray:Array=[true, false, true, false]; for (var j:int=0; j < MenuList.length; j++){ var item:ContextMenuItem=new ContextMenuItem(MenuList[j], separatorBeforeArray[j]); item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, MenuItemSelectHandler); myContextMenu.customItems.push(item); } } private function MenuItemSelectHandler(event:ContextMenuEvent):void{ var CaptionString:String=event.target.caption; trace(CaptionString); switch (CaptionString) { case "删除行": editDgManager.DelRow(); break; case "删除列": editDgManager.DelColumn(); break; case "插入行": var InsertRowWindow:InsertDGRowWindow=InsertDGRowWindow(PopUpManager.createPopUp(this,InsertDGRowWindow, false)); InsertRowWindow.title="-->插入行设置"; InsertRowWindow.getWinArg(editDgManager) break; case "插入列": var InsertColWindow:InsertDGColumnWindow=InsertDGColumnWindow(PopUpManager.createPopUp(this,InsertDGColumnWindow, false)); InsertColWindow.title="-->插入列设置"; InsertColWindow.getWinArg(editDgManager) break; } } //此项数据可以动态创建 private var HeadArray:Array=["姓名", "学号", "性别"]; private var arDatas:ArrayCollection; private function myGridcolumns():Array { var cols:Array=MyDataDG.columns; //锁定的order var ID_DC:DataGridColumn=new DataGridColumn(); ID_DC.editable=false; ID_DC.draggable=false; ID_DC.headerText="序号" ID_DC.dataField="ID"; ID_DC.setStyle("textAlign", "center"); ID_DC.width=45; cols.push(ID_DC) //根据headerArray建立DataGridColumn for (var m:int=0; m < HeadArray.length; m++) { var ShowID_DC:DataGridColumn=new DataGridColumn(); ShowID_DC.editable=true; ShowID_DC.draggable=false; ShowID_DC.headerText=HeadArray[m]; ShowID_DC.dataField=HeadArray[m]; ShowID_DC.headerRenderer=new ClassFactory(DgHeaderTextRender); ShowID_DC.setStyle("textAlign", "center"); cols.push(ShowID_DC) } return cols; } private function ShowList():void { arDatas=new ArrayCollection(); arDatas.removeAll(); for (var i:int=0; i < HeadArray.length; i++) { var names:String=HeadArray[i]; var obj:Object=new Object(); var show_num:Number=Number(i + 1); if (show_num < 10) { obj.ID="No.0" + show_num; }else{ obj.ID="No." + show_num; } obj.names=HeadArray[i]; arDatas.addItem(obj) } editDgManager.arData=arDatas; MyDataDG.dataProvider=arDatas; MyDataDG.addEventListener(DataGridEvent.ITEM_FOCUS_OUT, clearMenuHandler); MyDataDG.addEventListener(DataGridEvent.ITEM_FOCUS_IN, setMenuHandler); } private function setMenuHandler(event:DataGridEvent):void { editDgManager.SelColumnIndex=event.columnIndex; MyDataDG.contextMenu=myContextMenu; addDataGridMenuItems(); } private function clearMenuHandler(event:DataGridEvent):void { MyDataDG.contextMenu=null; } private function ViewHandler(event:MouseEvent):void{ var xmlStr:String=editDgManager.ViewXML(); Alert.show(xmlStr) }
评论
4 楼
terryang
2011-08-09
你的EditDataGridManager在哪啊
3 楼
marcucuckoo
2010-09-26
博主,谢谢,太好了
2 楼
diding
2009-03-10
其实也差不多,个人习好;
我比较喜欢全用AS来构架,阅读起来顺眼,呵呵
PS:
用AS定义的module通常会比mxml的module少10KB左右(但是有些类和组件会在runtime时提示找不到(我用module加载module时发现的,这就是为什么会小提源故吧,),这样,只需在main.as 定义一下就可以了,(常见的有datagrid,NumericStepper,TabNavigator,comboBox和DividedBox等)
我比较喜欢全用AS来构架,阅读起来顺眼,呵呵
PS:
用AS定义的module通常会比mxml的module少10KB左右(但是有些类和组件会在runtime时提示找不到(我用module加载module时发现的,这就是为什么会小提源故吧,),这样,只需在main.as 定义一下就可以了,(常见的有datagrid,NumericStepper,TabNavigator,comboBox和DividedBox等)
1 楼
chenguo
2009-03-09
Thanks!还有一个问题想问你:注意到你的组件全是用.as文件写好的,那么如果是用.mxml写好的,有什么不同吗,是不是效率问题?我自己也不太明白,望指教。
发表评论
-
Flex 4.5 – Using Mobile View Transitions
2011-05-18 16:45 2515收录的一篇文章: 原文地址:http://devgirl.or ... -
Flex Array多参数排名(含有并列名次)
2011-04-25 21:52 1533最近有一个项目,客户不仅要求报表同时呈现: 1.员工在整个公司 ... -
从数据库读取数据并在Tree上分组呈现
2011-04-06 23:34 2374最近有一项目,需要从mysql数据库读取数据,到Flex中呈现 ... -
Flex Air 周边整合之碎语
2011-03-05 20:13 2051手边近期有一个项目( ... -
SDK 4.5 (Hero)TextLayout 随记
2010-11-15 22:24 4139TextLayout前沿更新: http://sourcefo ... -
Flex4.5 Hero
2010-11-06 21:03 3069Flex4.5 已在10.24发布,今天终于静下来玩玩它了 下 ... -
Flex4 Declarations in ActionScript
2010-11-02 20:26 3046抽空整理Cairgorn3时,由于喜欢Code,而不喜欢Blo ... -
AS3公历转农历和农历转公历
2010-11-01 21:49 528今天例行整理硬盘中的文件时,看到收录一篇JAVA农历转公历的类 ... -
Flex DataGrid 内嵌AutoCompleteDataGrid
2010-10-27 23:26 1099这个东东是根据flashcommand的AutoComplet ... -
Flex DataGrid 内嵌ComboBox 再内嵌一个 DataGrid
2010-10-27 23:10 1520由于设计需要,曾要用到一个功能模块,但由于数据量的问题,最终p ... -
美发城的烫染护理系统和仓库管理软件
2010-10-27 23:06 1126这段时间,做了两个软件:美发城的烫染护理系统和仓库管理软件 P ... -
Flash Builder 4 的一个作品
2009-07-27 10:33 7887月17日放假,到现在完成了一个网站,记录一下 http:// ... -
AS3获取Jpg图像长宽
2009-03-28 12:32 2159一个老外的比较有用的类,自已整合到自已的utls包中: 1.用 ... -
Flex存bmp图像
2009-03-28 12:13 2191前言: 这阵子没事在研究buzzword,并试图还原前台,费 ... -
Flex图文混排之后期开发
2009-03-07 22:14 6767一:now SDK: flex_sdk_4.0.0.61 ... -
纯AS的RemoteAMF3
2009-03-03 23:35 1621[纯AS的RemoteAMF3] 目前支持:AMFPHP,C ... -
FxTextArea插入图片后,图片上方空隙的解决
2009-03-02 21:51 2429由于开发一个运行期间由用户来设置dg表,无意间打开Navica ... -
Flex提交Datagrid数据存为xml
2009-03-01 14:38 3161Flex 代码区 MyDataDG为datagrid,执行提 ... -
采用AS开发Module
2009-03-01 13:34 12921.采用ModuleLoader /********** ... -
Flex图文混排
2009-03-01 13:26 7049这几天没事,学习Gumbo的FxTextArea,开发了一个F ...
相关推荐
在Flex开发中,自定义右键菜单是一项常见的需求,它能为用户界面提供更丰富的交互体验。Flex是一款基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。在这里,我们将深入探讨如何在Flex中实现...
通过分析和学习这些内容,开发者可以更好地理解和实现Flex DataGrid的前台分页功能。 总的来说,前台分页是一种提高用户体验的策略,但同时也需要谨慎处理以避免内存和性能问题。正确实现前台分页,可以使Flex ...
本文将详细讨论如何在Flex DataGrid中实现全选和反选功能,并结合`checkBox`来优化这一过程。 首先,我们要理解DataGrid的结构。DataGrid由多个列组成,每一列可能包含不同类型的控件,如文本、图像或复选框。在...
当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示更加有条理和易于理解。本文将详细探讨Flex DataGrid的表头分组特性及其实现方式。 首先,表头分组允许我们将数据...
在Flex应用中,Datagrid经常被用于处理和展示大量的结构化数据。在标题“Flex Datagrid checkbox实现”中,讨论的核心是Datagrid中集成复选框(checkbox)的功能。 在Flex Datagrid中实现复选框功能,主要是通过...
在Flex开发中,数据网格(DataGrid)是用于展示数据集合的强大组件,它允许用户以表格形式查看和操作数据。本示例关注的是在DataGrid中嵌套复选框(Checkbox),并实现全选功能。这在需要用户批量选择或操作数据的...
在"WPF分页DataGrid"中介绍了如何实现分页功能,本文中介绍如果实现右键菜单。点击菜单项Age,将Age列隐藏,再点击则显示;并实现移动列后,同步显示。 详见:...
Flex DataGrid 是 Adobe Flex 中一个重要的组件,用于展示结构化数据。它以表格形式呈现,非常适合用来显示多列数据,并提供了排序、选择、编辑等多种功能。在这个教程中,我们将深入探讨 DataGrid 的基本使用和一些...
flex datagrid 实现合计功能控件包 带源码,demo fxp是flex4的工程文件,导入到工作空间即可 直接导入项目即可。 更多访问我的blog www.dplayer.net
1. **DataGrid组件**:DataGrid是Flex中用于展示结构化数据的组件,它可以显示多列数据,并支持排序、选择和编辑等功能。在创建DataGrid时,我们需要指定数据源(通常是ArrayCollection或XMLListCollection)。 2. ...
在Flex客户端,你需要遍历DataGrid的所有行和列,收集其显示的数据。你可以通过遍历DataGrid的items属性来获取所有数据项,然后访问每个item的children来获取单元格值。记得只提取可见的和有数据的单元格,因为...
`DataGrid`是Flex提供的一个可自定义的、可滚动的数据容器,它允许用户以网格形式查看和操作数据。这种组件特别适用于展示大量结构化的信息,例如数据库记录或者报表数据。`DataGrid`可以自动调整列宽,并支持排序、...
通过这些实例,初学者可以了解并掌握Flex DataGrid的基础用法和高级特性,从而在实际项目中灵活运用。无论是在展示大量结构化数据,还是在实现复杂的数据操作场景,DataGrid都是Flex开发者的重要工具。在不断探索和...
在Flex开发中,Datagrid组件是用于展示数据集的一个强大工具,它允许用户以表格的形式查看和操作数据。本文将深入探讨如何在Flex的Datagrid中实现数据的合计与平均值计算,帮助开发者更好地理解和应用这些功能。 ...
Flex DataGrid 分页是Adobe Flex开发中一个关键的用户界面组件功能,用于处理大量数据时提高性能和用户体验。在Web应用程序中,一次性加载所有数据可能导致页面加载缓慢,消耗大量内存,而分页则能有效地解决这个...
在Flex开发中,DataGrid组件是一个非常常用的控件,它用于展示数据集合,并提供交互式操作,如排序、选择等。本示例聚焦于DataGrid中的CheckBox集成,特别是实现一个全选的功能。以下是对这个主题的详细解释: 一、...
在Flex开发中,DataGrid控件是用于展示数据表格的常用组件,它可以高效地呈现大量结构化信息。在某些情况下,我们可能需要根据特定条件改变DataGrid中的某一行或几行的背景颜色,以突出显示或者区分不同的数据状态。...
总的来说,实现Flex DataGrid标题栏添加复选框并使其与数据行的复选框联动,涉及到自定义HeaderRenderer和CellRenderer,以及对数据源和事件处理的深入理解。这需要开发者具备良好的Flex编程基础和组件定制能力。...