FLEX4实践—动态生成DataGrid及应用客户化itemRenderer

合集下载

WPF动态生成DataGrid及动态绑定解决方案

WPF动态生成DataGrid及动态绑定解决方案

WPF动态⽣成DataGrid及动态绑定解决⽅案⼀、场景有过WPF项⽬经验的朋友可能都知道,如果⼀个DataGrid要绑定静态的数据是⾮常的简单的(所谓静态是指绑定的数据源的类型是静态的),如下图所⽰,想要显⽰产品数据,只需绑定到⼀个产品列表即可,这个⼤家都清楚,所以这个要讲的肯定不是这个。

但是现在有⼀个新的需求,根据所选择产品的不同,要动态⽣成第⼆个表格中的不同数据,以便进⾏编辑,如下图1、2所⽰,当选择的产品不同时,第⼆个表格显⽰的内容是完全不⼀样的。

这样就会产⽣⼀个问题,⽆法直接对第⼆个表格进⾏绑定,因为它的数据源类型都是不⼀样的,⽆法按照传统⽅法进⾏绑定。

如何解决,先⾃⼰思考⼀下,也许会有更好的解决⽅案。

⼆、思路1、定义Domain既然⽆法知道要绑定的数据类型是什么,因为它是动态的,⽆法事先预知的,根据所选择的产品(因为产品数据都存储于DB中,所以将类型定义于Domain项⽬中)不同⽽变化的。

那么可以在 Product 中定义 SKUFields 属性⽤于代表产品可显⽰的字段。

产品定义如下所⽰。

///<summary>///产品///</summary>[Table("Product")]public class Product{public int ProductId { get; set; }public string ProductDesc { get; set; }public bool IsRFID { get; set; }public bool IsTID { get; set; }public string CustomerItemCode { get; set; }public string ProductCode { get; set; }public string SuggestedPrinter { get; set; }///<summary>///产品对应的⽂件名称///</summary>public string ProfileName { get; set; }///<summary>///产品对应的SKU字段列表///</summary>public ICollection<SKUField> SKUFields { get; set; }}///<summary>/// SKU 字段///</summary>public class SKUField{///<summary>///产品ID///</summary>public int ProductId { get; set; }///<summary>///字段ID///</summary>public int SKUFieldId { get; set; }///<summary>///字段名称///</summary>public string FieldName { get; set; }///<summary>///字段标题,⽤于显⽰///</summary>public string FieldTitle { get; set; }///<summary>///字段是否可编辑///</summary>public bool IsEditable { get; set; }///<summary>///字段的值///</summary>public object DefaultValue { get; set; }///<summary>///字段值是否可选///</summary>public bool IsValueSelectable { get; set; }///<summary>///字段的类型,如int、string或其他///</summary>public Type FieldType { get; set; }///<summary>///如果IsValueSelectable = True,那么SKUFieldValues代表可选择的值列表///</summary>public ICollection<SKUFieldValue> SKUFieldValues { get; set; }}///<summary>///⽤于定义SKU字段的取值///</summary>public class SKUFieldValue{public int SKUFieldId { get; set; }public int SKUFieldValueId { get; set; }public string FieldValue { get; set; }}然后在项⽬中定义 IProductRepository 接⼝,⽤于定义获取产品的⽅法。

FLEX4_Flex4教程

FLEX4_Flex4教程

Flex 应用的构建形式 尽管用 Flex 开发 RIA 有多种形式,但现在主流的架构是:Flex 作为 Client(客户端),Java、PHP、 Asp、Ruby 等技术作为 Server(服务器端)。
本教程之后的内容主要介绍 Flex 与 Java 技术的整合。
Flex 访问服务器端数据的 3 种方式 既然 Flex 可以和 Java 等 Sever 端技术整合,那么它们之间怎样实现通信的呢?Flex 通过 HTTPService,WebService 和 RemoteObject 这 3 个组件实现与 Server 端的通信。

外观与样式设计 使用 CSS 和图形属性编辑器自定义应用程序外观。快速设置最常用的属性,并在“Design”(设计) 视图中预览结果。使用新的 Theme Browser(主题浏览器)浏览可用主题,并将它们应用于您的项目。

与 Adobe Creative Suite 设计工具集成 导入使用 Adobe Flash Professional、Illustrator®、Photoshop® 或 Fireworks® 软件创建的设计 资源,或导入使用 Flash Catalyst 创建的整个应用程序用户界面。Flash Professional 与 Flash Builder 之间的新工作流程简化了自定义 Flex 组件的导入和更新。

HTTPService 组件
HTTPService 组件允许你与 HTTP 服务交互,可以是接收 HTTP 请求和发送 HTTP 响应的任何 HTTP URI。 你可以通过 HTTPService 组件调用任何类型的 Server 端技术,包括 PHP pages, ColdFusion Pages, JavaServer Pages, Java servlets, Ruby on Rails 和 ASP pages。 HTTPService 组件允许你发送 HTTP GET、POST、HEAD、OPTIONS、PUT、TRACE 和 DELETE 请求,并典 型的以 XML 形式返回。

第24-28讲:Flex数据集成基础-Flex数据集成基础-Flex与XML、DataGrid、项目呈现器集成开发

第24-28讲:Flex数据集成基础-Flex数据集成基础-Flex与XML、DataGrid、项目呈现器集成开发


<item id="2" name=“a"/> <item id="3" name=“b"/> <item id="4" name=“c"/> XML 对象需要设定顶级节点: <items> <item id="2" name=“a"/> <item id="3" name=“b"/> <item id="4" name=“c"/> </items>



可以使用”@”运算符来指定所需的属性值为一个字段: xml.bar.@type 要存取多个名称相同的子节点, 可以使用”[]”运算符。好像 以下的例子: var xml:XML = <foo> <bar type="salutation">Hello World</bar> <bar type="salutation">Hola</bar> <bar type="salutation">Guten Tag</bar> </foo> 你可以使用以下的方法来存取<bar>系列的第三个对象: xml.bar[2].@type


Flex 4 和ActionScript 3.0 支持ECMAScript 或E4X 标准的 XML 语法, 使你可以通过点(.)标记来存取一个XML 分层架构 的各个节点。通过E4X 所提供的简易标记, 你可以根据其名 称或索引, 轻易地存取特定的节点或节点组, 而无需使用一些 复杂的自定义回调函数。同时,它也定义了各种方法及属性, 用以存取XML 对象的各个部分, 包括注释, 命名空间和处理 指令等。Flex Framework 及ActionScript 3.0 定义了两个级别 的对象来处理XML 语言: XML 和 XMLList 对象。XML 对象 代表单一的XML 元素, 一个XML 文档或该文档中的一个单 值元素。XMLList 则代表一组跟其他组同级的XML 元素。 XMLList 对象不需要设置顶级节点, 例如:

flex4.0标签

flex4.0标签

Flex 4 读取xml文件,xml文件的格式:<root>根节点<leaf>叶子<info>信息<in id="logo">test-logo</in><in id="left">test-left</in></info></leaf><in id="middle">test-middle</in></root>fx:Binding可以使用 <fx:Binding> 标签将某个对象的数据绑定到另一个对象。

可以使用 <fx:Component> 标签在 MXML 文件中定义内联单元格渲染器或单元格fx:Component编辑器。

fx:Declarations可以使用 <fx:Declarations> 标签声明当前类的非默认、不可视属性。

可以在 <fx:Library> 标签内使用 <fx:Definition> 标签定义图形子对象,然后fx:Definition可以将子对象用于应用程序的其他部分中。

fx:DesignLayer<fx:DesignLayer> 标签仅供内部使用。

fx:Library可以使用 <fx:Library> 标签声明当前类的非默认、非可视属性。

fx:Metadata使用 <fx:Metadata> 标签可以在 MXML 文件中插入 metadata 标签。

fx:Model可以使用 <fx:Model> 标签在 MXML 中声明数据模型。

fx:Private可以使用 <fx:Private> 标签提供有关 MXML 或 FXG 文档的元数据信息。

作为视图状态更改的一部分,可以使用 <fx:Reparent> 标签更改某个组件的父容fx:Reparent器。

第9章 Flex 4系统组件:图表

第9章 Flex 4系统组件:图表

χ
1.条形图 . Flex 4中使用BarChart组件创建条形图,使用BarSeries序列组件定义BarChart
Hale Waihona Puke 的数据。BarSeries的属性主要有以下几个。 (1)xField (2)yField (3)minField (4)fill (5)stroke
(1)指定数据源。 为BarChart组件指定数据源,本示例在<fx:Script>标签中使用ActionScript代码 定义一个ArrayCollection类型的变量barChartData作为显示的数据源。在 <s:Application>标签下添加如下代码: <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; [Bindable] private var barChartData:ArrayCollection = new ArrayCollection( [ { month: "Jan", profit:550, amount: 50}, { month: "Feb", profit:1000, amount: 110}, { month: "Mar", profit:680, amount: 80} ]); ]]> </fx:Script>
折线图的效果如图所示。 示例代码所示。
Flex使用PieChart组件创建饼图,使用PieSeries序列组件定义PieChart的数据。 根据数据源中的数据确定每个数值在圆饼上所占的份额。PieSeries组件常用的属性 如下所示。 (1)field (2)nameField (3)labelFunction (4)labelField (5)labelPosition (6)calloutStroke (7)radialStroke (8)fills (9)stroke

myflex笔记

myflex笔记

Flex原理1.事件的原理分为三个阶段:捕获、目标、冒泡事件的起源是跟结点stage 直到发生事件的对象,之后又向相反的方向回到stageStage->obj :捕获阶段寻找obj的过程:目标阶段Obj->stage:冒泡阶段节点:stage->application-> 容器(panel等)->obj;2. data 绑定原理[Bindable(event="propertyChange")]。

(默认的绑定)Flex组件默认监听了propertyChange 事件;3. flex通信原理:3.1过程:通道-》端点-》消息-》服务-》目的地-》适配器3.2 通信的组件:. RemoteObject –远程调用• HTTPService –http代理• WebService –http代理• Producer –消息• Consumer –消息3.3 原理BlazeDS :是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术图解:3.1端点(Endpoint) (在MessageBrokerServlet中实现)。

endpoint,其默认形式是/messagebroker/amf通道类型:amf Channel(速度快)、httpChannel(二进制无压缩的)等消息通过channel传到endPoint ,Channel 和endpoint的编码格式必须一致比如都用amf的3.2. messgeBroker(消息代理人)messgeBroker 将消息根据(destination)服务请求的种类,传给不同的服务,服务再传到对应的服务的destination3.3.Service and destination 类别remoteService->remoteServiceDestination(RomoteObject 对象)->remote-config.xmlhttpproxyService->httpproxyserviceDestination(httpService\webService 对象)->proxy-config.xmlmessageservice->messageDestination(producer\consumer 对象)->message-config.xmldestination:目标其实是一个请求的目标:对于常用的远程方法调用来说,其目标(destination)就是某个特定的java服务,或者某个特定的配置好的Java类对于代理目标来说,则是定义好的代理种类,比如说普通HTTP代理还是基于WebService的代理对于消息目标来说,则是某个特定的消息服务种类3.4.AdapterRemote->javaadapterProxy->httproxyAdaper\soapadaperMessage->jms or as(客户端交换信息)4. flex 配置Flex socket 通信1.DataGrid1.dataGrid 数据的处理itemClick 事件:event:ListEvent;(var grid:DataGrid= event.target as DataGrid)所点击列的表头:grid.columns[event.columnIndex].headerText;列索引:event.columnIndex;行索引:event.rowIndex;选中的行数据:grid.selectedItem选中的单元格数据:grid.selectedItem[grid.columns[e.columnIndex].dataFiled]2. DataGrid 数据的移动方法:grid.removeItemAt;grid.addItemAt;3. Mxml中引入xml文件(利用HTTPService)可以作为dataGrid的数据源实例:<mx:HTTPService id="simpletest"url="assets\photoFood.xml"result="photoColl=stResult.list.food"/>注意:private var photoColl:arrayCollection;或者用监听方式取回结果:Private function onResult(event:ResultEvent):void{This. photocell=event.result.list.food ;}photoFood.xml:<list><food><food_name>Artichoke Dip</food_name><photo>artichokeDip.jpg</photo></food><food><food_name>Bread Pudding</food_name><photo>breadPudding.jpg</photo></food><food><food_name>Cheesecake</food_name><photo>cheesecake.jpg</photo></food></list>4.dataGrid 的itemReader 可以是自定义的任何组件;rendererIsEditor="true" :渲染的组件可以编辑,并且编辑后的值可以返回到datagrideditorDataField="value"(默认为“text”):渲染器要编辑的属性5.ArrayCollection的过滤器:实例:利用combobox控制数据的显示private function myFilter():void{if(this.myCom.selectedItem.toString()=="ALL"){this.reviewList.filterFunction=null;}else{this.reviewList.filterFunction=myFunc;}//refresh() 必须添加的方法this.reviewList.refresh();}//过滤器的筛选规则返回值为boolean,参数为容器的一个对象private function myFunc(item:Object):Boolean{return(item.rating.toString()==this.myCom.selectedItem.toString());}<mx:ComboBox dataProvider="{}" change="myFilter()" id="myCom"/>Private var com:ArrayCollection=new ArrayCollection(["1","2","3","4","5","ALL"]);DataGrid颜色专题总结:1。

使用Flex图表组件

使用Flex图表组件

使用Flex图表组件2009-05-09 13:25以图表或是图的方式显示数据的能力可以使得Flex程序用户的数据交互更为容易。

与仅显示简单的数字数据表不同,我们可以显示条状图,饼图,线图或是其他类型的图表,并且可以使用颜色,标题以及二维图形来表示我们的数据。

在这一部分我们会介绍Flex图表,菜单数据,以及我们可以在Flex中创建的其他类型的图表。

关于图表数据表示可以使得我们简化数据表示与数据关系的方式来表示数据。

图表是数据的一种类型,从而我们可以使用二维的图形来表示我们的数据。

Flex支持最常见的二维图形,例如条状图,柱状图,饼图,并且提供给我们对于图表显示的的极大控制。

一个简单的图表显示单一的数据系列,在这里系列是一组相关的数据点。

例如,一个数据系列也许是月度销售收益,或者是一天的旅馆占有率。

下面的图表显示了过去六个月的与销售收益相应的数据系列:JiniiJiv lM>rch 卜i&hl 」uni另一种图表也许会添加第二个数据系列。

例如,我们也许会包含过去六个月的利润。

下面的图表显示了两个数据系列,一个是销售,一个是利润:定义图表数据图表控件使用为图表定义数据的date Provider属性。

一个数据提供者(date provider)是一个对象的集合,与数组类似。

图表组件使用平的,或者是基于列表的,数据提供者,与一维数组类似。

一个数据提供者由两部分组成:一个数据对象集合与API。

数据提供者API是个类必须实现的方法与属性的集合,从而Flex组件可以将其看作数据提供者。

图表类型Flex支持最常见的一些图表类型,包括条状图,线图,饼图以及其他的类型。

这一部分描述Flex所提供的图表集合。

除了这些图表类型以外,我们还可以扩展笛卡尔图表控件还创建自定义的图表。

区域图表我们使用图表控件将数据表示为一个用与数据值相关的线来界定的区域。

下的区域用一种颜色或是一种类型来进行填充。

我们可以用图标或是符号来表示线上的每一个数据点,或者是不使用图标而仅用单一的线。

flex4 读书笔记

flex4 读书笔记

chapter 11、flex包含一个基于组件的开发模型,你只需要按需求继承现有的组件并扩展相关的方法就可开发你的应用。

2、可视化组件包括以下主要特性:尺寸、事件、样式、效果、皮肤。

3、flex定义了两套组件。

一套为Spark,放在spark.*包下。

一套为MX,放在mx.*包下。

Spark是在flex4中新添加的,mx为旧版本中定义的。

两套组件的主要不同点在于样式及皮肤的使用。

另外对于容器组件,布局的方式也改变了。

4、有些组件在两套UI中都存中,例如按钮,在这种情况下adobe建议你使用Spark中的组件。

有些组件是某套UI特有的。

例如Spark中的3d效果。

mx组件中的数据可视化组件,例如DataGrid、AdvancedDataGrid。

所以你的应用会包含两套UI中的组件。

5、可视化组件的继承层次结构:Object-EventDispatcher-DisplayObject-InteractiveObject-DisplayObjectContainer-Sprite-FlexSprite-UIComponent。

flex中所有的可视化对像都继承自UIComponent。

6、UIComponent中需要注意以下属性。

doubleClickEnabled:flex默认是不支持双击的,如果要开启双击,请把该属性设为true;height:在mxml中你可以设置值为数字,这时默认单位为pix。

你也可以设置为70%这种比例。

在as中,如果要设置百分比,你需要用percentHeight这个属性。

x,y:这组属性只在layout为绝对布局时才有效。

7、每一个flex组件都有对应的mxml接口和as接口。

两者之间是相等的。

8、每个一可视化组件都包含以下三个生命周期事件:preInitialize:组件刚被创建,还没有添加子节点,且不可见。

initialize:把子节点初始化好,并尺寸也设置好,但仍然处于不可见状态。

flex与excel相互复制,导入,导出,另存为等通信问题

flex与excel相互复制,导入,导出,另存为等通信问题

flex与excel相互复制在Excel(OpenOffice Calc)中,当多个单元格被复制时,这些单元格的数据是以tab键分隔一行行数据(tab- separated values (TSV))存放在剪贴板中的,当这些数据被粘贴到Google Spreadsheets中时,这些TSV格式的数据被解析并被相应插入到Google Spreadssheets中了。

既然知道其中的奥妙,那么剩下的就是在Flex中实现同样的效果了。

以下是我们的实现思路,可以在Excel和Flex相互直接复制粘贴数据。

我们的思路的精妙所在是隐藏文本(TextField)组件的使用:在DataGrid中,当按下Ctrl键时,我们创建一个隐藏的文本(TextField)组件,并将焦点定位给它,这样,我们就可以接受任何通过Ctrl+V粘贴过来的数据。

相应的我们也将DataGrid选择行数据以 TSV格式拷贝到TextField组件中,并且将所有的文本选择,这样我们使用Ctrl+C操作就可以复制当前行所有数据了。

监听隐藏文件组件的textInput事件。

如果有任何数据被粘贴的话,那么在这里数据将被解析,并插入到DataGrid中。

当Ctrl键释放后,移除隐藏的文本组件。

以下是完整实现示例代码:1.<?xml version="1.0"?>2.<mx:Application xmlns:mx="/2006/mxml">3. <mx:Script>4. <![CDATA[5. import flash.events.KeyboardEvent;6.7. private functiondataGridKeyDownHandler(event:KeyboardEvent):void8. {9. if (event.ctrlKey&& !dataGrid.getChildByName("clipboardProxy"))10. {11. // Add an invisible TextField object to the DataGrid12. var textField:TextField = new TextField();13. = "clipboardProxy";14. dataGrid.addChild(textField);15. textField.visible = false;16.17. textField.type = TextFieldType.INPUT;18. textField.multiline = true;19.20. // Populate the TextField with selected data in TSV format21.22. textField.text =getTextFromItems(dataGrid.selectedItems);23. textField.setSelection(0, textField.text.length - 1);24.25. // Listen for textInput event26.27. textField.addEventListener(TextEvent.TEXT_INPUT,28. clipboardProxyPasteHandler);29.30. // Set player-level focus to the TextField31.32. systemManager.stage.focus = textField;33. }34. }35.36.37. private functiondataGridKeyUpHandler(event:KeyboardEvent):void38. {39. if (!event.ctrlKey)40. {41. var textField:TextField = TextField(dataGrid42. .getChildByName("clipboardProxy"));43. if (textField)44. dataGrid.removeChild(textField);45. }46. }47.48. private functionclipboardProxyPasteHandler(event:TextEvent):void49. {50. // Extract values from TSV format and populate the DataGrid51.52. var items:Array = getItemsFromText(event.text);53. for each (var item:Object in items)54. dataGrid.dataProvider.addItem(item);55. }56.57. private function getItemsFromText(text:String):Array58. {59. var rows:Array = text.split("\n");60. if (!rows[rows.length - 1])61. rows.pop();62.63. var columns:Array = dataGrid.columns;64. var itemsFromText:Array = [];65.66. for each (var rw:String in rows)67. {68. var fields:Array = rw.split("\t");69.70. var n:int = Math.min(columns.length, fields.length);71. var item:Object = {};72. for (var i:int = 0; i < n; i++)73. item[columns[i].dataField] = fields[i];74. itemsFromText.push(item);75. }76.77. return itemsFromText;78. }79.80. private function getTextFromItems(items:Array):String81. {82. var columns:Array = dataGrid.columns;83. var textFromItems:String = "";84.85. for each (var it:Object in items)86. {87. for each (var c:DataGridColumn in columns)88. textFromItems += it[c.dataField] + "\t";89. textFromItems += "\n";90. }91.92. return textFromItems;93. }94. ]]>95. </mx:Script>96.97. <mx:DataGrid id="dataGrid" editable="true"98. keyDown="dataGridKeyDownHandler(event)"99. keyUp="dataGridKeyUpHandler(event)">100. <mx:columns>101. <mx:DataGridColumn headerText="Scheduled Date" 102. dataField="scheduledDate" />103. <mx:DataGridColumn headerText="Home Team" 104. dataField="homeTeam" />105. <mx:DataGridColumn headerText="Away Team" 106. dataField="awayTeam" />107. <mx:DataGridColumn headerText="Field"108. dataField="field" />109. </mx:columns>110. <mx:dataProvider>111. <mx:Object scheduledDate="4/1/2006"homeTeam="Chester Bucks"112. awayTeam="Long Valley Hitters" field="Dawn Field" />113. </mx:dataProvider>114. </mx:DataGrid>115.</mx:Application>这样我们可以写一个自定义组件继承自Datagrid组件来支持行级数据的复制粘贴:1.package com.yyhy.flex.util2.{3.import flash.events.KeyboardEvent;4.import flash.events.TextEvent;5.import flash.text.TextField;6.import flash.text.TextFieldType;7.8.import mx.controls.*;9.import mx.controls.dataGridClasses.DataGridColumn;10. //import mx.events.11.public class EIDataGrid extends DataGrid12.{13.public function EIDataGrid()14.{15.super();16.this.addEventListener(KeyboardEvent.KEY_DOWN,KeyDownHandler);17.this.addEventListener(KeyboardEvent.KEY_UP,KeyUpHandler);18.}19.private function KeyDownHandler(event:KeyboardEvent):void20. {21. if (event.ctrlKey&& !this.getChildByName("clipboardProxy"))22. {23. // Add an invisible TextField object to the DataGrid24. var textField:TextField = new TextField();25. = "clipboardProxy";26. this.addChild(textField);27. textField.visible = false;28.29. textField.type = TextFieldType.INPUT;30. textField.multiline = true;31.32. // Populate the TextField with selected data in TSV format33.34. textField.text = getTextFromItems(this.selectedItems);35. //textField.text =getTextFromItems(dataGrid.dataProvider.source);36. textField.setSelection(0, textField.text.length – 1);37.38. // Listen for textInput event39.40. textField.addEventListener(TextEvent.TEXT_INPUT,41. clipboardProxyPasteHandler);42.43. // Set player-level focus to the TextField44.45. systemManager.stage.focus = textField;46. }//end if47. }//end function48.49.50. private function KeyUpHandler(event:KeyboardEvent):void51. {52. if (!event.ctrlKey)53. {54. var textField:TextField =TextField(this.getChildByName("clipboardProxy"));55. if (textField)56. {57. this.removeChild(textField);58. }//end if59. }//end if60. }//end function61.62. private functionclipboardProxyPasteHandler(event:TextEvent):void63. {64. // Extract values from TSV format and populate the DataGrid65.66. var items:Array = getItemsFromText(event.text);67. for each (var item:Object in items)68. this.dataProvider.addItem(item);69. }//end function70.71. private function getItemsFromText(text:String):Array72. {73. var rows:Array = text.split("\n");74. if (!rows[rows.length - 1])75. rows.pop();76.77. var columns:Array = this.columns;78. var itemsFromText:Array = [];79.80. for each (var rw:String in rows)81. {82. var fields:Array = rw.split("\t");83.84. var n:int = Math.min(columns.length, fields.length);85. var item:Object = {};86. for (var i:int = 0; i < n; i++)87. item[columns[i].dataField] = fields[i];88. itemsFromText.push(item);89. }90.91. return itemsFromText;92. }//end function93.private function getTextFromItems(items:Array):String94. {95. var columns:Array = this.columns;96. var textFromItems:String = "";97. //add datagrid headtext98. for each (var i: DataGridColumn in columns)99. {100. textFromItems += i.headerText + "\t";101. }102. textFromItems += "\n";103.104. for each (var it:Object in items)105. {106.107. for each (var c: DataGridColumn in columns) 108. textFromItems += it[c.dataField] + "\t"; 109. textFromItems += "\n";110. }111.112. return textFromItems;113. }//end function114.}115.}在AIR环境下,可以使用as3xls-1.0.swc库来导出excel:1.<?xml version="1.0" encoding="utf-8"?>2.<mx:WindowedApplicationxmlns:mx="/2006/mxml" layout="absolute">3. <mx:Script>4. <![CDATA[5. import mx.controls.CheckBox;6. import mx.controls.Alert;7. import com.as3xls.xls.ExcelFile;8. import com.as3xls.xls.Sheet;9. import flash.filesystem.*;10. [Bindable]11. private var dp:Array = [12. {idx:1, names: "test1", sex: "b" },13. {idx:2, names: "test2", sex: "g" }14.15. ];16. public function doSelect(o:Object):void17. {18. Alert.show("行的数据分别是:"+o.idx+"/"+s+"/"+o.sex);19.20. }21.22.23.24. private var sheet:Sheet;25. private function onCreate():void {26.27. var excelFile:ExcelFile = new ExcelFile();28. sheet = new Sheet();29. sheet.resize(10, 10);30. sheet.setCell(0, 0, "Today’s date:");31. sheet.setCell(0, 1, new Date());32. excelFile.sheets.addItem(sheet);33. var mbytes:ByteArray = excelFile.saveToByteArray();34.35.36. var stream:FileStream = newFileStream();37. var docsDir:File =File.documentsDirectory.resolvePath("abc.xls"); // 定死文件名38.39. try40. {41. docsDir.browseForSave("SaveAs");42. docsDir.addEventListener(Event.SELECT, saveData);43. }44. catch (error:Error)45. {46. trace("Failed:",error.message)47. }48.49.50. functionsaveData(event:Event):void51. {52. var newFile:File =event.target as File;53.54. if (!newFile.exists)55. {56. var stream:FileStream =new FileStream();57. stream.open(newFile,FileMode.WRITE);58. stream.writeBytes(mbytes);59. // 写文件流60. stream.close();61. }62. }63.64.65.66. }67.68. ]]>69. </mx:Script>70.71. <mx:Panel>72.73.74. <mx:Button label="导出" click="onCreate()"/>75. <mx:DataGrid id="dg1" dataProvider ="{dp}">76.77. <mx:columns>78. <mx:DataGridColumn width="20" headerText="" >79. <mx:itemRenderer>80. <mx:Component>81. <mx:CheckBox change="{outerDocument.doSelect(data as Object)} " />82. </mx:Component>83. </mx:itemRenderer>84. </mx:DataGridColumn>85. <mx:DataGridColumn headerText="names"dataField="names" width="200" />86. <mx:DataGridColumn headerText="sex"dataField="sex" width="300" />87.88. </mx:columns>89. </mx:DataGrid>90. </mx:Panel>91.</mx:WindowedApplication>如果是flex web怎么办?flash.filesystem.File (AIR Only)在flex是实现不了的。

FlexGrid for Winform:ComponentOneFlexGrid强大的交互体验——行、列、单元格的自如定制

FlexGrid for Winform:ComponentOneFlexGrid强大的交互体验——行、列、单元格的自如定制

FlexGrid for Winform:ComponentOneFlexGrid强大的交互体验——行、列、单元格的自如定制本篇博客将讲述如何设置FlexGrid单元格类型,FlexGrid支持复选框,下拉列表,按钮,掩码,日历以及自定义单元格类型。

以及自由定制行、列、单元格。

使用ComponentOne WinForms 表格控件FlexGrid,将诸多定制能力内嵌在产品中,让应用系统自如交互。

比如调整列宽、调整行高、自适应匹配最佳列宽、自适应匹配最佳行高、通过下拉窗口选择单元格的数据、通过可视化日期控件或计算器控件指定单元格的值。

1. 自定义FlexGrid不同的数据类型自定义FlexGrid基础类型UITypEditor:UITypeEditorControl实现ComboBox,IServiceProvider,IWindowsFormsEditorService的接口,是其他数据类型的基础,继承关系如下:#region ** UITypeEditorControl (base class for all of the controls bel ow)/// <summary>/// UITypeEditorControl/// </summary>public class UITypeEditorControl :ComboBox,IServiceProvider,IWindowsFormsEditorService{}#endregion自定义FlexGrid的CheckListEditor数据类型:从上述UITypeEditorControl派生的可下拉的复选框列表,用户可以从下拉列表单选或多选各个选项,可以任意组合选项,如图所示:该类定义如下代码,具体实现代码可以参考结尾Demo的CheckListEditor 类。

#region ** CheckListEditor//// CheckListEditor// UITypeEditor that can be used to edit items in CheckedListBo x control.// Users can check any combination.//public class CheckListEditor : UITypeEditor#endregion自定义FlexGrid的FlexHyperlink数据类型:从上述UITypeEditorControl派生的可下拉的复选框列表,用户可以从下拉列表单选或多选各个选项,样子如图所示:该类定义如下代码,具体实现代码可以参考结尾Demo的FlexHyperlink类。

FlexGrid控件的使用(一)

FlexGrid控件的使用(一)

FlexGrid控件的使用(一)发布时间:2007-05-05 来源:未知作者:未知Hierarchical FlexGrid与分层结构的Recordset将Hierarchical FlexGrid和一个分层结构的Recordset结合起来可以查看关系类型的信息。

在将这些信息显示给用户的时候,可以确保原始数据的安全,使之不被用户修改;也可以通过将文本框添加到窗体defForm来增加Hierarchical FlexGrid的单元格编辑功能。

当Hierarchical FlexGrid被绑定到分层结构的Recordsets 上时,可以使用带区来显示分组的和相关的Recordsets。

注意在执行本步骤之前,必须先将数据绑定到Hierarchical FlexGrid。

为此,请参阅将数据绑定到分层结构的FlexGrid。

要使用带区在Hierarchical FlexGrid中显示分层结构的Recordsets1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。

出现Hierarchical FlexGrid 的“属性页”对话框。

2. 在“通用”选项卡中,设置“带区显示”。

关于每一种带区显示的描述,请参阅带区的格式设置。

3. 在“带区”选项卡中,从“带区”框中选择一个带区。

这里列出的可用带区是根据Command 分层结构中的Recordsets确定的。

对于每一个带区,生成Recordset的Command 的名称被显示在括号中。

4. 在必要的时候修改每个带区的属性。

与此有关的详细信息,请参阅带区的格式设置。

5. 单击“确定”,将带区属性应用于Hierarchical FlexGrid并关闭“属性页”对话框。

带区的格式设置在Hierarchical FlexGrid中,可以利用带区格式设置功能来指定某个Recordset 的显示选项。

ADO 分层结构Recordset中的每一个Recordset都将被创建一个带区。

VB-MSFlexGrid控件-4

VB-MSFlexGrid控件-4

VB-MSFlexGrid控件-4Col和Row属性(MSHFlexGrid)这两个属性返回或设置MSHFlexGrid中活动单元的坐标。

在设计时不可用。

应用于MSHFlexGrid控件,MSFlexGrid控件。

语法object.Col[=number]object.Row[=number]Col和Row的语法包含以下部分:部分描述object对象表达式,其值是“应用于”列表中的对象numberLong类型值。

它指定了活动单元的位置说明可以用这些属性来指定MSHFlexGrid中的单元,或者找到包含当前单元的那个行或者列。

行和列是从0开始计数的,对于行来说,以顶端为起始,而对于列来说,则以左边为起始。

对这些属性进行设置会自动对RowSel和ColSel进行重置,这样,所选定的就变成了当前单元。

因此,为了指定一个块选定,必须首先对Row和Col进行设置,然后对RowSel和ColSel进行设置。

当前单元的值(由Col和Row的设置值所决定的),就是包含在那个单元中的文本。

可以用T extMatrix属性在不改变已选定的Row和Col属性的情况下,对单元的值进行修改。

请参阅Cols,Rows属性(MSHFlexGrid),ColSel,RowSel属______性,SelChange事件(MSHFlexGrid),Sort属性(MSHFlexGrid),Text属性(MSHFlexGrid),TextMatrix属性,Bands属性(MSHFlexGrid)。

示例在该示例中,将“Here”放到当前单元中,然后将活动单元更改为第3行中的第3个单元,并将“There”放到那个单元中。

可以单击F5键来运行该程序,然后单击网格。

注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。

Private Sub Form1_Load()MSHFlexGrid1.Rows=8MSHFlexGrid1.Cols=5End SubPrivate Sub MSHFlexGrid1_Click()'将文本放到当前单元中。

Flex_4.0_RIA开发详解讲义

Flex_4.0_RIA开发详解讲义
Flex 4.0 RIA开发详解(第2版)
第1章 Flex概述
Flex是Adobe公司推出的一系列工具和技术,使开发人 员可以开发和部署可升级的富互联网应用程序(RIAs)。 Flex提供了一种现代的、基于标准的语言来支持公共模板设 计、客户端运行环境、编程模型、开发模型和高级数据服务 。富互联网应用程序(RIAs)是指像使用Web一样的简单方 式来部署富客户端程序。这种程序具有比HTML更加健壮、 反应更加灵敏和互动性更丰富的特点。
Flex 4.0 RIA开发详解(第2版)
1.2.3 Flash Builder 4 Beta的安装
(5)在文本框中输入安装路径或是单击“选择”按钮 选择安装路径。
(6)单击“安装”按钮。完成安装后自动弹出安装第 五步骤“安装完毕”对话框。
(7)单击“完成”按钮,完成安装。
Flex 4.0 RIA开发详解(第2版)
Flex是Adobe公司近两年推出的重量级产品与技术。 Flex的出现就是为了高效地开发和部署富互联网应用程序。
Flex 4.0 RIA开发详解(第2版)
1.1 Flex简介
Adobe公司对于Flex采取了开源的策略,所以开发者可 以在Flex原代码的基础上修改。新版Flex 4中的开发环境已 经更名为Flash Builder,而不再是Flex Builder系列。Flex采 用事件驱动机制,程序的执行过程严格按照事件发生的时间 顺序执行。本节将介绍为读者Flex开发技术的特点、优点和 新特性。
Flex 4.0 RIA开发详解(第2版)
1.1.2 Flex SDK 4的新特性
Flex 4较之Flex 3有了许多令人兴奋的新特性。 1.新增主题和组件 2.增强布局方式 3.增强特效和滤镜效果 4.新增双向绑定功能 5.增强的CSS 6.增强的HTML模板 7.增强的状态 8.增强ASDoc的支持 9.运行时共享库 10.本地化

趋势:flex和grid使布局更简单

趋势:flex和grid使布局更简单

趋势:flex和grid使布局更简单前⾔:记不久前⾯试的时候,⾯试官问我平时⽤什么布局⽅式,我⾮常耿直的说 div+css,利⽤position,float等布局,这就是⾮常传统的布局⽅式,通常都要写⽐较多的css代码;前⼏天在知乎上看到篇⽂章 flex布局的话,我知道,是css3中引⼊的,即弹性盒⼦布局,它的浏览器兼容性如下图。

对于grid布局,我才听闻,所以赶紧学习了⼀下。

查看属性的兼容性可以在这个⽹站:⼀,flexbox:任何⼀个容器都可以指定为Flex布局,设置 display:flex;设置这个属性之后,⼦元素的float,clear和vertical-align属性将会失效。

flex容器默认有两根轴:⽔平的主轴(main axis)垂直的交叉轴(cross axis)⽤表格的⽅式来⼀⽬了然的显⽰它的属性值:属性名称属性含义属性可能的值定义在容器的属性flex-direction决定主轴的⽅向row(默认) ⽔平,起点在左端row-reverse ⽔平,起点在右端column:垂直,起点在上沿column-reverse:垂直,起点在下沿flex-wrap决定⼀条轴线放不下,如何换⾏Nowrap(默认) 不换⾏Wrap:换⾏,第⼀⾏在上⾯Wrap-reverse:换⾏,第⼀⾏在下⾯flex-flow是上⾯两个属性的简写默认值是 row nowrapjustify-content定义项⽬在主轴上的对齐⽅式Flex-start(默认值)左对齐Flex-end 右对齐Center 居中Space-between:两端对齐,项⽬之间的间隔都相等Space-around:每个项⽬之间的间隔相等,所以项⽬之间的间隔⽐项⽬与边框之间的间隔⼤⼀倍align-items定义项⽬在交叉轴上如何对齐Flex-start 交叉轴的起点对齐Flex-end 交叉轴的终点对齐Center:交叉轴的中点对齐Baseline:项⽬的第⼀⾏⽂字的基线对齐Stretch (默认值)如果项⽬未设置⾼度或者设为auto,将占满整个容器的⾼度align-content定义多跟轴线对齐⽅式,⼀条轴线该属性不起作⽤Flex-start: 与交叉轴的起点对齐Flex-end 与交叉轴的终点对齐Center:与交叉轴的中点对齐Space-between:与交叉轴的两端对齐,轴线之间的间隔平均分布Space-around:每根轴线之间的间隔都相等,所以轴线之间的间隔⽐轴线与边框之间的间隔⼤⼀倍定义在项⽬上order定义项⽬的排列顺序,数值越⼩,排列越靠前默认0flex-grow定义项⽬的放⼤⽐例,如果存在剩余空间,不放⼤默认0(如果所有项⽬的flex-grow属性为1,则等分剩余空间)项⽬上的属性存在剩余空间,不放⼤等分剩余空间)flex-shrink定义项⽬的缩⼩⽐例默认1 负值对该属性⽆效flex-basis定义在分配多余空间之前,项⽬占据的主轴空间,浏览器根据这个属性来计算主轴是否有多余空间默认auto,即项⽬本来⼤⼩flex是上⾯三个的简写默认值 0 1 auto 后两个值可选align-self允许单个项⽬与其他项⽬不⼀样的对齐⽅式,可覆盖align-items属性默认值auto 表⽰继承⽗元素的align-items属性,如果没有⽗元素,则等同于 stretch解释⼀下align-content属性,当我们把容器的flex-warp的值设置为warp或者warp-reverse时,若项⽬不能在⼀根主轴上显⽰,容器便会出现多根主轴。

Flex培训

Flex培训

24
Content 内容
Flex简介 Flex示例 Flex与J2EE应用结合 常见问题的解决方案 Flex开发框架
Inspur group 2012-2-28
25
Flex与J2EE的结合:新建项目时 Flex与J2EE的结合: 的结合
选择J2EE型的应用服务类型
26
Flex与J2EE的结合:新建项目时 Flex与J2EE的结合: 的结合
编辑应用服务地址,引用url,上下文
编辑完了要点击检验正确性
27
Flex嵌入html,jsp Flex嵌入html, 嵌入html
参照你应用下的bin目录下的html文件
28
Flex嵌入html,jsp Flex嵌入html, 嵌入html
29
在Flex里访问传入的参数 Flex里访问传入的参数
11
Flex的优势五:自动解析xml文件 Flex的优势五:自动解析xml文件 的优势五 xml
Flex中的Actionscrip包含了针对XML的Ecmascript或者 叫做E4X。它通过把XML看作一个原始变量使得操作一个 XML对象变得简单。 Xml对象及其子元素还可以直接作为Tree,DataGrid对象 的数据集,直接以图形化的方式进行展现。
<?xml version="1.0" encoding="utf8"?> <mx:Application xmlns:mx="/20 06/mxml" layout="absolute"> <mx:Button id="btn" lab el=" 确定"/> </mx:Application>

MSFlexGrid控件详解

MSFlexGrid控件详解

MSFlexGrid控件目录概述属性方法事件属性常数概述属性方法事件属性常数展开编辑本段概述MSFlexGrid控件显示和操作表格数据。

其对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。

当与Data控件绑定时,MSFlexGrid控件只显示只读数据。

你可以在MSFlexGrid中的任何单元放置文本、图片或这二者。

Row和Col属性指定MSFlexGrid控件的当前单元。

你可以在代码中指定当前单元,也可以在运行时使用鼠标或键盘改变当前单元。

Text属性引用了当前单元中的文本。

如果单元中的文本太长以致不能在单元中一行显示,将WordWrap属性置为True将在单元中分多行显示文本。

要在单元中显示多行文本,你需要增大单元的宽度(ColWidth属性)或行高度(RowHeight属性)。

使用Cols和Rows属性确定MSFlexGrid控件中的行数和列数。

编辑本段属性OLEDropMode属性(ActiveX控件),Height, Width属性(ActiveX控件),Index属性(ActiveX控件),Left, Top属性(ActiveX控件),Tag属性(ActiveX控件),Visible属性(ActiveX控件),Object属性(ActiveX控件),ColPos属性,ColPositon, RowPosition属性,Cols, Rows 属性(MSHFlexGrid),ColSel,RowSel属性,ColWidth属性(MSHFlexGrid),FillStyle属性(MSHFlexGrid),FixedCols, FixedRows属性(MSHFlexGrid),FocusRect属性,FontWidth,FontWidthBand, FontWidthFixed, FontWidthHeader属性(MSHFlexGrid),ForeColor, ForeColorBand, ForeColorFixed, ForeColorHeader, ForeColorSel属性,FormatString属性,GridColor, GirdColorBand, GridColorFixed, GridColorHeader,GridColorIndent, GridColorUnpopulated属性,GridLines, GridLinesBand,GridLinesFixed, GridLinesHeader, GridLinesIndent, GridLineUnpopulated属性(MSHFlexGrid),GridLineWidth, GridLineWidthBand,GridLineWidthFixed,GridLineWidthHeader, GridLineWidthIndent, GridLineWidthUnpopulated属性(MSHFlexGrid),HighLight属性(MSHFlexGrid),LeftCol属性(MSHFlexGrid),MergeCells属性,MergeCol, MergeRow属性,MouseCol, MouseRow属性,Name属性(MSHFlexGrid),Picture属性(MSHFlexGrid),PictureType属性,Redraw属性,RowHeight 属性(MSHFlexGrid),RowHeightMin属性,RowVisible属性,RowPos属性,ScrollBars属性(MSHFlexGrid),ScrollTrack属性,SelectionMode 属性,Sort属性(MSHFlexGrid),Text属性(MSHFlexGrid),TextArray 属性,TextMatrix属性,TextStyle, TextStyleBand, TextStyleFixed, TextStyleHeader属性(MSHFlexGrid),TopRow属性(MSHFlexGrid),Version属性(MSHFlexGrid),WordWrap属性(MSHFlexGrid),AllowBigSelection属性,AllowUserResizing属性,BackColor, BackColorBkg, BackColorFixed, BackColorSel属性,CellAlignment属性,CellBackColor, CellForeColor属性,CellFontBold属性,CellFontItalic属性,CellFontName属性,CellFontSize属性,CellFontStrikeThrough属性,CellFontUnderline属性,CellFontWidth 属性,CellHeight, CellLeft, CellTop, CellWidth属性(MSHFlexGrid),CellPicture属性,CellPictureAlignment属性,CellTextStyle属性,Clip 属性(MSHFlexGrid),Col,Row属性(MSHFlexGrid),ColAlignment, ColAlignmentBand, ColAlignmentHeader属性(MSHFlexGrid),ColData, RowData, BandData属性(MSHFlexGrid),ColIsVisible属性,DataBindings 属性,TabIndex属性,DragIcon属性,DragMode属性,MouseIcon属性,TabStop属性,HelpContextID属性,Parent属性,Container属性,ToolTipText属性,WhatsThisHelp属性,Appearance属性(ActiveX控件),BorderStyle属性(ActiveX控件),Enabled属性(ActiveX控件),DataSource属性(ActiveX控件),hWnd属性(ActiveX控件),MousePointer 属性(ActiveX控件)。

Flex 3.0实战之itemRenderer

Flex 3.0实战之itemRenderer
|≈ 蠢
重 l ,  ̄ AT [D A
』 一 k " "
萎 四幽 疹霉 f 多0
7 、

≯ 篱垮 | 簪 零 | 蔓 簪簦 囊 誊譬

簪簪 翌 色 u a 韬 。 蕾 l,
T D , } .
s LEa 一 n I 每 t 静 嚣鍪 鬣叠 漕 e疑 墨 羲 ≯ | 鹫 慧 诬
<r X 盘 C r i 黟 C e 。l j


蕊虢露 豇镌曲营。 马 辩 s” 艄蛰赞蔼每 3黾 t 蟊笔’ 癌 樽 鬯i 笆孽 誊 t


0|: 0∞ | | 叠 颤内鳘c 甏 e 薏
≯ 霹9 毫 毒 馥 髫 露簿 彝i
黾 i l _ ■ Ii i _ j l ¨ ■ 琶 l l
l 。 | || 尊 静 。l 强 ・ 一 |
篝群 静点巷 礁G嚣毒
Ls、T e 、TlL t aa i i t re i i ,D tGr e s d等等。这些 组件有一个 共 同 的特性 ,那就 是支 持 自定义 i mR n ee ,这个 功 能 t e e d rr 非常强大,能够 帮助 我们 实现很 多实用的功 能,本文将介
绍 i mR n ee 的 相 关 知 识 和 具体 应 用 。 t e e d rr
然 后 创 建 一 个 新 的 MXML 件 Po u te e d rr 组 rd cl mR n ee. t
mx ,扩展 了Ca v s mI n a 容器,内容如下:
魏 Ⅺ吐 t 马B 譬 | 翮暑 3i Q 6矗 姬 } 幢 曩 矗 } § j 鼍 I 矗 |。 。 _ a
了名为 “ aa d t”的存取器 ,也就是 s t r g t r et 和 et 函数 : e e

MSFlexGrid表格控件详细说明

MSFlexGrid表格控件详细说明

MSFlexGrid 表格控件详细说明控件名:Microsoft FlexGrid Control文件:sys\msflxgrd.ocx============================= 属性=========================================■AllowBigSelection 属性在行头或者列头上单击时,(是否)可以使得整个行或者列都被选中。

■AllowUserResizing 属性 (是否)可以用鼠标来对 MSFlexGrid 控件中行和列的大小进行重新调整。

-------------------------------------■Appearance 属性设计时的绘图风格■BorderStyle 属性边框样式-------------------------------------■BackColorBkg 属性 '表格多余部分颜色■BackColorFixed 属性 '表格头部分颜色■BackColorSel属性 '选中部分颜色■BackColor属性 '所有未确定单元的颜色■CellBackColor 和 CellForeColor 属性返回或设置单个单元或者一群单元的背景和前景颜色。

-------------------------------------■ForeColor、ForeColorFixed 以及 ForeColorSel 属性各部分上文本的颜色。

■TextStyle 和 TextStyleFixed[= style ] 属性返回或设置指定单元或者一群单元上文本的三维样式。

----------------------------------------■FixedAlignment (index)= [value] 属性列号,设置值flexAlignLeftTop 0 左顶部flexAlignLeftCenter 1 左中flexAlignLeftBottom 2 左底部flexAlignCenterTop 3 中顶部flexAlignCenterCenter 4 中中flexAlignCenterBottom 5 中底部flexAlignRightTop 6 右顶部flexAlignRightCenter 7 右中flexAlignRightBottom 8 右底部■ColAlignment(number) 属性 [= value ] 返回或设置某一列中数据的对齐方式number=列号,或者 -1(一次性地对所有列进行设置)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FLEX4实践—动态生成DataGrid及应用客户化itemRenderer 收藏
应用场景:
1)从后台取到的数据为数组类型,但数据的列名及列个数均是动态的
2)抽取到的数据中有些是DATE类型的,如果直接显示在DataGrid中默认格式很难让用户接受,希望对特殊类型的数据(如日期)进行格式转换处理
下面的例子将模拟这一场景:
数据准备:gridColumns1搭配gridProvider1,gridColumns2搭配gridProvider2;两组数据的列名及列个数均不同,其中一组数据包括DATE类型数据。

主应用:DynamicGridTest.mxml
1.<?xml version="1.0"encoding="utf-8"?>
2.<s:Application xmlns:fx="/mxml/2009"
3.xmlns:s="library:///flex/spark"
4.xmlns:mx="library:///flex/mx"minWidth="955
"minHeight="600">
5.<fx:Script>
6. <!--[CDATA[
7. import components.DynamicGridWin;
8. import mx.managers.PopUpManager;
9. private function showWin1():void{
10. var new newWindow:DynamicGridWin=new DynamicGridWin;
11.newWindow.title="Grid1";
12.newWindow.gridColumns = gridColumns1;
13.newWindow.gridProvider = gridProvider1;
14. PopUpManager.addPopUp(newWindow, this, true);
15. PopUpManager.centerPopUp(newWindow);
16. }
17. private function showWin2():void{
18. var new newWindow:DynamicGridWin=new DynamicGridWin;
19.newWindow.title="Grid2";
20.newWindow.gridColumns = gridColumns2;
21.newWindow.gridProvider = gridProvider2;
22. PopUpManager.addPopUp(newWindow, this, true);
23. PopUpManager.centerPopUp(newWindow);
24. }
25. ]]-->
26.</fx:Script>
27.<fx:Declarations>
28.<!-- Place non-visual elements (e.g., services, value objects)
here -->
29.<fx:Array id="gridColumns1">
30.<fx:Object colCode='Name'colType='VARCHAR2'/>
31.<fx:Object colCode='Price'colType='VARCHAR2'/>
32.<fx:Object colCode='StartDate'colType='DATE'/>
33.</fx:Array>
34.<fx:Array id="gridProvider1">
35.<fx:Object Name="Apple"Price="18"StartDate="{new Date()}
"/>
36.<fx:Object Name="Banana"Price="10"StartDate="{new Date(2
010,1,3)}"/>
37.</fx:Array>
38.
39.<fx:Array id="gridColumns2">
40.<fx:Object colCode='Name'colType='VARCHAR2'/>
41.<fx:Object colCode='Class'colType='VARCHAR2'/>
42.</fx:Array>
43.<fx:Array id="gridProvider2">
44.<fx:Object Name="Apple"Class="1"/>
45.<fx:Object Name="Banana"Class="3"/>
46.</fx:Array>
47.</fx:Declarations>
48.<s:Button x="384"y="155"label="GridWin1"click="showWin1()"/>
49.<s:Button x="532"y="155"label="GridWin2"click="showWin2()"/>
50.
51.</s:Application>
组件DynamicGridWin.mxml
注:DynamicGridWin.mxml中的dateRenderer就是用以处理日期格式数据的格式转换,initGrid()实现动态生成表格并根据'ColType'判断是否需要添加itemRenderer进行类型转换显示。

演示效果:
GridWin1:
GridWin2:。

相关文档
最新文档