Flex4 Halo组件 List 和 DataGrid

Flex1 到 Flex3 使用的都是 Halo组件,这里将介绍Halo 组件中的List 和 DataGrid 。其中 DataGrid 是显示多列数据中最常用的方式。但是在Spark中还有没对应DataGrid的组件。

先写个“食物”的模型 Dinner.as 。

package model {
  [Bindable]
  public class Dinner {
    public var name:String;
    public var food:String;
    public var due:Date;

    public function Dinner(
      name:String = "", food:String = "", due:Date = null) {
      this.name = name;
      this.food = food;
      this.due = due == null ? new Date() : due;
    }
  }
}

然后在对食物进行处理,相关解释以注释写在Mxml中。

<?xml version="1.0" encoding="utf-8"?>
<s:Application
  xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx"
  width="100%" height="100%">
<fx:Script>
<![CDATA[
  import mx.collections.ArrayCollection;
  import model.Dinner;

  [Bindable]
  private var _dinners:ArrayCollection = new ArrayCollection([ //创建一个“食物”集合
    new Dinner("Breakfast", "Subway"),
    new Dinner("Lunch", "French"),
    new Dinner("Supper", "Japanese food"),
    new Dinner("Coffee"), new Dinner("Tea"), new Dinner("Wine")]);

  private function formatDinner(dinner:Dinner):String { //创建格式化数据的函数
    return dinner.name +
    (dinner.food == "" ? "" : (" (" + dinner.food + ")")) +
    ", due on " + dateFormatter.format(dinner.due) + ".";
  }

  private function formatDate(item:Object,
    column:DataGridColumn):String
  {
    var dinner:Dinner = item as Dinner;
    return dinner == null ? "" : dateFormatter.format(dinner.due);
  }
]]></fx:Script>
<fx:Declarations>
  <mx:DateFormatter id="dateFormatter" formatString="YYYY-MM-DD"/> <!--格式化日期的组件-->
</fx:Declarations>
  <s:layout>
    <s:HorizontalLayout paddingLeft="10" paddingTop="10"
      paddingBottom="10" paddingRight="10"/>
  </s:layout>
  <mx:List dataProvider="{_dinners}" labelFunction="formatDinner"
    alternatingItemColors="[#EEEEEE, #FFFFFF]"
    variableRowHeight="true" wordWrap="true"
    width="250" height="150"/>
  <mx:DataGrid width="100%" height="150" dataProvider="{_dinners}">
    <mx:columns>
		<!--数据列名同属性名-->
      <mx:DataGridColumn headerText="Name" dataField="name"
        width="150"/>
		<!--labelFunction 格式化当前列数据的函数-->
      <mx:DataGridColumn headerText="Due" dataField="due"
        width="100" labelFunction="formatDate"/>
      <mx:DataGridColumn headerText="Food" dataField="food"/>
    </mx:columns>
  </mx:DataGrid>
</s:Application>

Flex4 Halo组件 List 和 DataGrid

时间: 2024-07-31 15:56:44

Flex4 Halo组件 List 和 DataGrid的相关文章

第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件

jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使用方法,这个组件依赖于 DataGrid(数据表格)组件. 一.加载方式 建立一个 JSON 文件 [ { "id": 1, "name": "系统管理", "date": "2015-05-10", &quo

第二百二十五节,jQuery EasyUI,PropertyGird(属性表格)组件

jQuery EasyUI,PropertyGird(属性表格)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 PropertyGird(属性表格)组件的使用方法,这个组件依赖 于 DataGrid(数据表格)组件. 一.加载方式 class 加载方式 <table id="box" class="easyui-propertygrid" style="width:300px" data-opt

老调长谈的Flex 4.6 可视组件的生命周期

本文参考Adobe flex 4.6 help,写作目的仅为了个人加强记忆与体会 Flex 4以上版本中,可视组件分为spark和halo两套,spark用组件类和皮肤类的分离大大提高了对自定义外观的支持,特别是对于某些子皮肤部件移动位置改变布局的自定义外观,再也不需要大费周章的重写组件的updateDisplay方法了. 两套组件在生命周期上其实差别不大 spark组件 var btn:Button=new Button(); btn.label="按钮"; var box:VGro

Flex元素布局规则总结,以及布局和容器

一.Flex中的元素分类从功能层面可以把Flex中的元素分为组件(Components)和容器(Containers)两大类:组件 - 是指那类具有明确交互或数据展示功能的元素,例如Button.Checkbox.Datagrid.List等.容器 - 是指那类用来放置其他元素的元素,容器往往不具有特定的交互功能,主要的功能就是容纳元素.容器再细分又可以分为布局(Layout)容器和导航(Navigator)容器,其中布局容器的功能就是用来布局界面元素的,例如Application.Panel等

Loader与URLLoader,SWFLoader

(1) Loader        Loader 类可用于加载 SWF 文件或图像(JPG.PNG 或 GIF)文件. 使用 load() 方法来启动加载. 被加载的显示对象将作为 Loader 对象的子级添加.        (2)URLLoader        URLLoader 类以文本.二进制数据或 URL 编码变量的形式从 URL 下载数据. 在下载文本文件.XML 或其它用于动态数据驱动应用程序的信息时,它很有用.URLLoader 对象会先从 URL 中下载所有数据,然后才将数据

《linux 内核完全剖析》 vsprintf.c 代码笔记

Flex1 到 Flex3 使用的都是 Halo组件,这里将介绍Halo 组件中的List 和 DataGrid .其中 DataGrid 是显示多列数据中最常用的方式.但是在Spark中还有没对应DataGrid的组件. 先写个"食物"的模型 Dinner.as . package model { [Bindable] public class Dinner { public var name:String; public var food:String; public var du

BOS物流管理系统-第一天

BOS物流管理系统-第一天-系统分析.环境搭建.前端框架 BoBo老师 整体项目内容目标: 对项目概述的一些理解 亮点技术的学习 注意学习方式:优先完成当天代码. 其他内容. 最终: 学到新的技术,会应用新的技术:对项目有个整体感觉: 课程安排:12天左右 主要内容: 项目整体概述和一般流程(项目概念.一般项目流程等) BOS项目的概述(项目背景.需求.技术架构.学习目标) 开发环境搭建 项目导入和运行(传统项目结构)(Struts2的通配符映射) 项目导入和运行(Maven项目结构)(STS开

码农视角 - Angular 框架起步

开发环境 1.npm 安装最新的Nodejs,便包含此工具.类似Nuget一样的东西,不过与Nuget不同的是,这玩意完全是命令行的.然后用npm来安装开发环境,也就是下边的angular cli. 2.Angular Cli 通过命令行创建项目,“编译”代码,启动调度环境等功能.angular本身使用typescript编写,需要通过ng命令,将相关的ts代码转换成js代码,以便在浏览器中运行. 安装angular cli npm install -g @angular/cli 3.IDE 复

TreeGrid( 树形表格)

本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使用方法,这个组件依赖于DataGrid(数据表格)组件 一. 加载方式//建立一个 JSON 文件[{"id" : 1,"name" : "系统管理","date" : "2015-05-10","children" : [{"id" : 2,"name" : "主机信