Adobe
产品
创意套装
Photoshop
Acrobat 系列产品
Flash 平台
在线营销套装
数字企业平台
数字出版套装
更多产品
解决方案学习帮助下载公司
商店
在线商店
产品价格
批量许可
查找经销商
搜索
 
信息 登录
欢迎,我的支持
我的帐户
注销
为何登录?登录后可以管理您的帐户,访问试用版下载、产品扩展和社区区域等。
Adobe
产品 分类   搜索  
解决方案 公司
帮助 学习
登录 欢迎, 我的货物 我的支持
Qty:
Subtotal
Checkout
Adobe 开发者中心 / Flex 开发人员中心 /

将数据绑定到 UI 组件

作者 Trilemetry

Trilemetry
  • Trilemetry, Inc.

Content

  • 配置数据返回类型
  • 将数据绑定到 DataGrid 控件
  • 将数据绑定到 PieChart 控件
  • 将 PieChart 和 DataGrid 控件绑定到同一数据实例

创建日期

1 June 2009

页面工具

在 Facebook 上共享
在 Twitter 上共享
在 LinkedIn 上共享
书签
打印

Tags

要求

必备知识

要成功完成本教程,请务必按照 ColdFusion 和 Flash Builder 4 beta 入门中所述设置并测试您的环境:

  1. 设置范例数据库和 ColdFusion 数据源。
  2. 设置 Flash Builder 数据服务项目。

如果已成功完成本系列中的任何其他教程,您可以跳过上述步骤。

用户级别

全部

必需产品

  • ColdFusion (Download trial)
  • Flash Builder 4 (Download trial)

Adobe Flash Builder 4 beta 之前称为 Flex Builder,它可以通过一个十分简单的界面将服务器端数据绑定到 Flex 框架用户界面控件。可以使用“Design”模式拖放组件,从而创建布局并绑定数据。您可以在短短几分钟内创建一个动态填充的应用程序,无需编写任何代码。

在本教程中,您将学会如何使用 DataGrid 和 PieChart 控件,将它们绑定到 ColdFusion Component (CFC) 函数返回的数据。还将了解到如何同步两个控件中的数据。

本教程适用于:

  • 正在浏览 Flex 和 ColdFusion 迷你学习中心教程的开发人员,这些教程以 Fictitious Sales Planner 示例为基础
  • 经验丰富、但不具备 Adobe Flex 框架或 Adobe Flash Builder 4 beta 经验的 ColdFusion 开发人员
  • 熟悉 ColdFusion 组件的 ColdFusion 开发人员

配置数据返回类型

正如介绍部分提到的那样,本教程使用的开发环境与 Getting started with ColdFusion and Flash Builder 4 入门以及本系列中的其他教程相同。在这一部分中,您将再命名一个数据类型,与另一个服务调用一起用于 CFC 函数:

  1. 在 Flash Builder 4 beta 中找到“Data/Services”视图。您应当看到图 1 中所示的 F4CF_Getting_Started_Service 服务。
验证是否已定义 EmployeeSalesData 数据类型
图 1.验证是否已定义 EmployeeSalesData 数据类型。
  1. 在“Data/Services”视图中,右键单击 F4CF_Getting_Started_Service 服务的 getEmployeeDataByRegion() 函数,并选择“Configure Return Type”(请参阅图 2)。
配置 CFC 方法的返回类型
图 2.配置 CFC 方法的返回类型。

查询的每条记录将放入 ActionScript 对象中,并在名称/值对中设置每列数据(FIRSTNAME、LASTNAME、EMAIL 等)。每条记录从零开始编写索引。

注意:不同于 ColdFusion,ActionScript 是一种零索引语言。

向导允许您为数据指定返回类型名称,而不是像往常那样将返回数据作为对象进行引用。接下来您将这样做。

  1. 在“Configure Operation Return Type”对话框中,新建一个名为 EmployeeDataByRegion 的自定义数据类型(请参阅图 3)。

    注意:这个数据类型不同于 ColdFusion 和 Flash Builder 4 beta 入门教程中定义的 EmployeeSalesData 数据类型,因为它要求您提供一个名为 region 的参数,用于限制数据返回给特定地区的员工。它从数据库返回的数据列也更少。

新建一个自定义数据类型
图 3.新建一个自定义数据类型。
  1. 单击“Next”。
  2. 在“Create New Data type”对话框的“Enter Value”列中,键入 Central(请参阅图 4)。
输入地区值。
图 4.输入地区值。

必须输入参数值 Central 才能返回查询结果。这只是证明查询可以正确运行的一种方法,以便您为它定义返回类型名称。在后续步骤中,您将通过更改代码,真正传递应用程序中的参数值。

  1. 单击“Yes”选项,指定操作需要远程凭据。
  2. 在“Remote Service Authentication”窗口中输入您的用户名和密码(请参阅图 5)。
输入 getEmployeeData() CFC 函数的远程凭据
图 5.输入 getEmployeeData() CFC 函数的远程凭据。
  1. 单击“OK”。
  2. 单击“Next”。
  3. 检查“Modify Properties of Return Type”对话框,并单击“Finish”。

您将看到“Data/Services”视图的“Data Types”类别中列出了 EmployeeSalesDataByRegion 数据类型,如图 6 所示。请注意,数据类型的属性是 CFC 方法返回的查询列。

注意数据类型及其属性
图 6.注意数据类型及其属性。

CFC 返回的数据包含与地区相关的员工信息:Northwest、Southwest、Central、Northeast 和 Southeast。请参阅使用 ColdFusion URL 变量部署 Flex 应用程序进一步了解如何将动态数据传递给应用程序。在本教程中,您将对地区值进行硬编码。

将数据绑定到 DataGrid 控件

在这一部分中,您将 EmployeeDataByRegion 数据绑定到 Flex 框架 DataGrid 控件。要做到这一点,您无需编写任何代码,使用 Flash Builder 内建向导即可生成所有代码。

将 DataGrid 控件加入布局中

您将使用 Flash Builder“Design”模式中的拖放功能添加 DataGrid 组件:

  1. 在 F4CF_Getting_Started 项目中,关闭所有打开的 MXML 文件。
  2. 从菜单中选择“File”>“New”>“MXML Application”新建一个应用程序文件。
  3. 将该文件命名为 F4CF_Binding_Data.mxml 并将“Layout”下拉列表设置为“None”。
  4. 单击“Finish”。

    注意:实际使用中,您的 Flash Builder 项目中通常只有一个主应用程序文件。使用本系列进行操作时,您将为每个教程新建一个主应用程序文件,以避免创建其他项目。

  5. 切换到“Design”模式。
  6. 在“Components”视图中,将一个 DataGrid 控件拖到“Design”区域(请参阅图 7)。
在“Design”模式中,将 DataGrid 控件添加到应用程序布局中
图 7.在“Design”模式中,将 DataGrid 控件添加到应用程序布局中。

将数据与 DataGrid 控件关联在一起

此时,将“Data/Services”视图中的函数拖放到 DataGrid 控件上,以绑定返回数据:

  1. 在“Data/Services”视图中选择 getEmployeeDataByRegion() 函数。
  2. 将函数拖放到“Design”区域的 DataGrid 控件上。

    此时将切换到“Source”模式,并将突出显示代码中的 region 变量,用于创建 DataGrid 控件(请参阅图 8)。

getEmployeeDataByRegion() 函数的 region 属性
图 8.getEmployeeDataByRegion() 函数的 region 属性
  1. 将 region 变量替换为字符串值 Central:
protected function dataGrid_creationCompleteHandler(event:FlexEvent):void { getEmployeeDataByRegionResult.token = f4CF_Getting_Started_Service.getEmployeeDataByRegion('Central'); }

注意:如上所述,您将把 getEmployeeDataByRegion 函数的属性 region 设置为一个硬编码值。请参阅使用 ColdFusion URL 变量部署 Flex 应用程序进一步了解如何将动态数据传递给应用程序。

  1. 切换回“Design”模式。

    您应当看到 DataGrid 控件列标题反映出已绑定数据(请参阅图 9)。

DataGrid 控件列反映出已绑定数据
图 9.DataGrid 控件列反映出已绑定数据。
  1. 保存文件,然后单击圆形的绿色“Run”按钮运行应用程序(请参阅图 10),也可以从菜单中选择“Run”>“Run F4CF_Binding_Data”。
单击 Flash Builder“Run”按钮
图 10.单击 Flash Builder“Run”按钮。

如图 11 所示,您将看到 DataGrid 控件填充了来自 ColdFusion 数据源的数据。

填充后的 DataGrid 控件。
图 11.填充后的 DataGrid 控件。

将数据绑定到 PieChart 控件

在这一部分中,您将数据绑定到 Flex 框架 PieChart 控件。与 DataGrid 控件相同,您无需编写任何代码就可以做到这一点。

将 PieChart 控件加入布局中

这里依然使用 Flash Builder“Design”模式中的拖放功能将 PieChart 控件加入应用程序布局中:

  1. 确保处于“Design”模式中。
  2. 从“Components”视图的“Charts”文件夹,将一个 PieChart 控件拖放到 DataGrid 控件下的屏幕中。

    您应当看到图 12 所示的“Create Chart”对话框。请注意,“Series elements”区域预填充了一个名为“Series 1”的图素。

    不需要显示附加到 UI 控件的所有数据。PieChart 控件的“series”属性允许您定义要显示在图表中的具体数据字段。您可以在图表中标出多组数据字段,但在本例中只使用一个。

  3. 将“ID”属性从“piechart1”更改为“YTDPieChart”(请参阅图 12)。
添加 PieChart 控件
图 12.添加 PieChart 控件
  1. 将文本框中的“Series 1”更改为“YTDSeries”。
  2. 单击“OK”,将 PieChart 控件加入显示中。

注意:您可能需要单击“Design”模式按钮右侧的“Refresh”按钮,才能显示图表。您也可以双击包含 MXML 文件名的“Editor”选项卡,展开或折叠“Design”区域。如果“Design”模式左上角显示图例,将它拖放到 PieChart 控件旁。

将数据与 Pie Chart 关联在一起

在这一部分中,您将数据绑定到 PieChart 控件:

  1. 在“Data/Services”视图中,将您绑定到 DataGrid 控件的同一个 getEmployeeDataByRegion() 函数拖放到 PieChart 控件上。

    请注意,将 getEmployeeDataByRegion() 函数调用的新实例拖到 PieChart 控件,您实际上在这个应用程序中对这个函数调用了两次:一次针对 DataGrid 控件,另一次针对 PieChart 控件。

    您将看到“Bind To Data”对话框(请参阅图 13)。“Configure chart”标题下有一个表格,它包含两列:Series 和 Field。

  2. 单击“Field”列中的单元格。您将看到一个下拉列表,其中包含拖到 PieChart 控件上的函数的所有属性。
  3. 从下拉列表中选择“YTD”(请参阅图 13)。
将数据绑定到 Pie Chart 中的一个字段
图 13.将数据绑定到 Pie Chart 中的一个字段
  1. 单击“OK”。

    此时将切换到“Source”模式,并在 PieChart 控件的 getEmployeeDataByRegion() 函数调用中突出显示 region 属性(请参阅图 14)。

getAllData() 函数的 region 属性
图 14.getEmployeeDataByRegion() 函数的 region 属性
  1. 将变量 region 替换为字符串值 Central。

    注意:记住我们在本教程中将把这个值硬编码。

protected function YTDPieChart_creationCompleteHandler(event:FlexEvent):void { getEmployeeDataByRegionResult2.token = f4CF_Getting_Started_Service.getEmployeeDataByRegion('Central'); }
  1. 保存文件并运行应用程序,可以看到 PieChart 控件的 YTD 切片会完成动态填充(请参阅图 15)。
在浏览器中预览 F4CF_Binding_Data 应用程序。
图 15.在浏览器中预览 F4CF_Binding_Data 应用程序。

注意:如果系统中没有得到许可的 Flex Builder 3,PieChart 控件上会显示一个水印。

  1. 更改 DataGrid 控件中任何一行的 YTD 值。

请注意,PieChart 控件数据没有变化。记住,您对服务分别发出了两个调用,并分别检索到返回数据的两个实例。

将 PieChart 和 DataGrid 控件绑定到同一数据实例

在这一部分中,您将 PieChart 控件绑定到与 DataGrid 控件的绑定操作相同的数据:

  1. 返回“Design”模式。
  2. 选择 PieChart 控件。请注意图 16 中控件左上角的互锁环图标。这个图标表示数据绑定。
这个图标表示 Pie Chart 绑定到数据
图 16.这个图标表示 Pie Chart 绑定到数据
  1. 双击数据绑定图标。

    您应当看到图 17 所示的“Bind Operation”对话框和消息。

“Bind Operation”对话框。
图 17.“Bind Operation”对话框。
  1. 单击“OK”。
  2. 在“Bind To Data”对话框中,从“Existing call result”弹出列表中选择“getEmployeeDataByRegionResult”(请参阅图 18)。
“Bind To Data”对话框。
图 18.“Bind To Data”对话框

请注意,“getEmployeeDataByRegionResult”是绑定到 DataGrid 控件的服务调用的结果数据,而“getEmployeeDataByRegionResult2”是绑定到 PieChart 控件的服务调用的结果数据。

  1. 单击“OK”。
  2. 保存并运行该应用程序。
  3. 如图 19 所示,运行应用程序并更改任何行的 YTD 值。请注意,PieChart 控件中的切片会调整大小以反映 DataGrid 控件值的变化。
DataGrid 和 PieChart 控件相互共享同一数据。
图 19.DataGrid 和 PieChart 控件相互共享同一数据。

后续工作

在本教程中,您学会了如何使用 Flash Builder 将服务器数据轻松绑定到 Flex 框架组件,以及该操作如何可以实现组件的交互性。要进一步了解服务调用、返回数据以及数据类型,请参阅生成表单教程。

要进一步了解如何配合使用 Flex 和 ColdFusion,请参阅以下教程:

  • 创建主/详细表单
  • 管理数据
  • 使用 ColdFusion URL 变量部署 Flex 应用程序

Tutorials & Samples

Tutorials

  • Flex mobile performance checklist
  • Flex and Maven with Flexmojos – Part 3: Journeyman
  • Migrating Flex 3 applications to Flex 4.5 – Part 4

Samples

  • Twitter Trends
  • Flex 4.5 reference applications
  • Mobile Trader Flex app on Android Market

Flex User Forum

More
02/07/2012 Newbie - Views
01/24/2012 How to navigate through the views without losing content?
02/07/2012 ActionScript rounding issue
02/07/2012 Setting Value of Static Const

Flex Cookbook

More
01/20/2012 Skinnable Transform Tool
12/12/2011 Date calculations using 'out-of-the-box' functions
12/05/2011 String replaceAll in ActionScript
12/04/2011 Flex: Validate/revert editable Datagrid input value

产品

  • Creative Suite
  • Photoshop 系列产品
  • Acrobat 系列
  • Flash Platform
  • Digital Marketing Suite
  • Digital Enterprise Suite
  • Digital Publishing Suite
  • 移动应用程序

解决方案

  • 客户体验管理
  • 内容创作
  • 数字营销

行业

  • 教育
  • 金融服务业
  • 政府部门

帮助

  • 产品帮助中心
  • 订货和退货
  • 下载和安装
  • 我的 Adobe

学习

  • Adobe 开发人员连接
  • Adobe TV
  • 培训和认证
  • 论坛
  • 设计中心

购买方式

  • 在线商店
  • 批量许可
  • 查找经销商

下载

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

公司

  • 新闻编辑室
  • 合作伙伴计划
  • 公司社会责任
  • 工作机会
  • 投资者关系
  • 事件
  • 法律
  • 联系 Adobe
选择您的地区 中国(更改)
选择您的地区 关闭

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • España
  • France
  • Deutschland
  • Hrvatska
  • Ireland
  • Israel - English
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Magyarország
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Österreich - Deutsch
  • Polska
  • Portugal
  • România
  • Россия
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Slovenija
  • Slovensko
  • Srbija
  • Suomi
  • Sverige
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Pacific - English
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated。保留所有权利。

使用本网站表明您同意使用条款和在线隐私政策(2009 年 7 月 14 日更新)。

京 ICP 备 10217899 号 京公网安备 110105010404