加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex4 Halo组件 List 和 DataGrid

发布时间:2020-12-15 03:45:37 所属栏目:百科 来源:网络整理
导读:Flex1 到 Flex3 使用的都是 Halo组件,这里将介绍Halo 组件中的List 和 DataGrid 。其中 DataGrid 是显示多列数据中最常用的方式。但是在Spark中还有没对应DataGrid的组件。 先写个“食物”的模型 Dinner.as 。 package model { [Bindable] public class Din

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读