数据处理和数据服务
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17.2.3 使用ActionScript定义绑定
• 前面使用“{}”或者<mx:Binding>标签定义数据 绑定,都是在MXML中进行。Flex还支持在 ActionScript中使用 mx.binding.utils.BindingUtils类来定义数据绑 定。该类的bindProperty()用来将属性绑定到变 量上。bindSetter()方法可以定制的方式实现绑 定。 • 1.使用bindProperty()方法 • 2.bindSetter()方法
17.3.4 XML数据模型
• XML数据模型是指数据模型中保存的是XML数据,对其处理 遵循XML标准。在使用数据模型时,有时会涉及XML数据。 为此Flex专门提供了了<mx:XML>标签,用于定义XML数据模 型。 • 该数据模型在与<mx:Model>不同之处,主要在于编译时 <mx:XML>会被编译为ActionScript的xml.XMLNode的数据或 者是XML对象。在<mx:XML>中可以使用“{}”进行数据绑定。 • 使用<mx:XML>时,可以把该标签下的内容看作一个XML文档。 如果将<mx:XML>的source属性设为E4X,就可以使用强大的 E4X处理XML。这里需要注意的是,在当前Flex版本不能 <mx:XML>内的节点值作为绑定源。
•
17.2 绑定数据
• “绑定”是非常形象的概念。例如把网上银行帐户和你的 信用卡帐户绑定,网上购物消费后,信用卡帐号的余额也 会发生改变。而对于数据,绑定是在不同的对象之间进行 数据的捆绑过程,当其中一个对象改变了,另一个对象也 发生改变。绑定为应用的数据传递提供了一种便捷的方式。 这里的对象通常指Flex组件的属性,例如文本控件的text 属性,数据类组件的dataProvider属性等。 • 通常,一个数据绑定由三部分构成,包括绑定源、绑定目 标和触发事件。当事件被触发后,绑定发生,完成从绑定 源到绑定目标的数据拷贝。 • Flex 2中提供了三种数据绑定的方法:“{}”语法、MXML 的<mx:Binding>标签和ActionScript中的BindingUtils方 法。下面分别介绍这3种方法。
17.2.5 源属性到多个目标属性的绑定
• 同样,同一个源属性可以绑定到多个不同的目标 属性上。在接下来的这个例子中,文本输入控件 的text属性绑定到两个数据模型上,这两个数据 模型有分别对应两个标签控件的text属性,如图 所示。
17.3 存储数据
• Flex中存储数据主要依靠数据模型来实现。可以根据应用 的需要,在数据模型中定义相应的属性用来保存应用数据。 • 数据模型广泛的用于Flex前台界面和后台服务器之间交互。 用户界面的数据在发送到服务器端处理之前,被保存在数 据模型中。同样,数据模型也可以保存来自服务器处理完 成的数据。从MVC设计模式的角度来看,数据模型位于模型 层面,起到承上启下的作用。 • 数据模型模型的引入,使得数据的验证和格式化都变得容 易。同时数据模型的定义可以包含客户端的业务逻辑,通 过不同数据的组合,大大增强了数据的内聚性。 • 本节主要介绍数据模型的定义、验证和使用。
17.4.3 触发验证器
• 在Flex应用中,数据验证是可以被在事件发生时触发。这样,用 户可以在需要验证时,随时触发验证。最常用的触发方式是使用 按钮。当单击某个按钮后,对数据进行验证。 在验证器定义过程中,可以通过以下两个属性定义验证的触发: trigger:表示触发验证的对象(通常是按钮)。例如: trigger="{button}";。 triggerEvent:表示对象触发验证事件类型(如鼠标单击,鼠标滑 入滑出等)。例如:triggerEvent="click"。
17.2.2 使用<mx:Binding>标签进行数据绑定 • 在Flex应用中,还可以使用<mx:Binding>标签取 代“{}”进行数据绑定。当使用<mx:Binding>标 签时,需要提供为标签提供源属性和目标属性, 这和使用“{}”是一致的。 • <mx:Binding>标签定义数据绑定的一般格式如下: • <mx:Binding • source="A" • destination="B" • />
第17章 数据处理和数据服务
• 从本章开始学习如何在Flex应用中操纵数据。 Flex 2在先前的版本基础上加强了客户端的数据 功能,同时在Flex的产品线中加入了Flex Data Service 2,使Flex应用更方便的与服务器端进行 数据交互。本章主要介绍Flex中数据的相关特性, 简要的介绍Flex数据服务。
• •
•
• • •
17.5.3 触发格式器
• 格式器的触发需要调用格式器的format()方法。在Flex应 用中可以在任何地方调用format()方法。通常格式器的触 发是作为事件的响应,如按钮的单击事件。 • 下面是一个通过按钮事件触发格式器的例子。创建了一个 日期格式器。当用户单击格式化按钮时,作为鼠标单击事 件的响应,格式器触发,对输入的日期格式化并将格式数 据显示到TextInput控件,如图所示。
17.5.2 创建数据格式器
• 数据格式器将数据格式为字符串,实现原始数据到字符串的单向 转换。最典型的情况是在文本域中显示数据之前触发数据的格式 化。 创建格式器,使用的MXML标签是<mx:Formatter>或者指定格式化 器的标签。主要涉及如下的属性和方法: formatString:定义数据的格式属性。它是格式化的基础。例如: formatString="YYYY-MM-DD",是将输入的日期格式为年-月-日这 样的格式。 format():格式化方法。该方法输入是需要格式化的数据,输出 是格式字符串。当格式化发生错误时,返回空值,同时错误信息 会写入格式器的error属性中。 创建格式器的一般过程如下: (1)在MXML代码中声明一个格式器,给定合适的格式属性。 (2)使用{}对绑定数据调用格式器的format()方法,将要格式化 的数据作为format()方法的参数。
17.4.2 创建数据验证器
• Flex中数据验证是由验证器(Validator)来执行 的。验证器的创建使用<mx:Validator>标签或者 指定验证器的标签,还可以使用验证器对应的类 在ActionScript中创建。下面以<mx:Validator> 为介绍创建过程。 • 1.使用MXML标签 • 2.在ActionScript中创建
17.5.1 使用标准的格式器
• 在Flex中,为了更加方便的进行数据格式化。对于常用数 据,提供了的标准的数据格式器,主要包括以下几类。 • CurrencyFormatter:货币数据格式化。 • DateFormatter:日期数据格式化。 • NumberFormatter :数字格式化。 • PhoneFormatter:电话号码格式化。 • ZipCodeFormatter :邮政区号格式化。 • 在Flex应用中如果需要对上述数据进行格式化,只需使用 相应的MXML标签或者ActionScript类即可。每类格式器的 使用方法类似,这里只介绍通用格式化器的使用方法。
17.1 Flex中的数据处理
• 在Flex应用开发过程中,数据是不可缺少的一部分。获取服务器 端数据,并对数据进行操作,成为开发应用过程非常重要的部分。 本节主要介绍Flex中数据处理的关键步骤,包含绑定数据 (Binding Data)、存储数据(Storing Data)、验证数据 (Validating Data)和格式化数据(Formatting Data)。 数据在用户与应用交互中是无处不在的。从用户在应用界面输入 数据,请求返回信息,到服务器端返回数据并在见面上显示数据, 经历了数个数据处理阶段,如图所示。
17.2.1 使用“{}”进行数据绑定
• 在使用“{}”进行绑定时,绑定源可以是控件属 性、ActionScript表达式、ActionScript函数。 • 使用“{}”语法进行数据绑定是最简单的数据绑 定方式。使用该方法时,{}将绑定的源属性括起 来,作为目标属性的值,具体形式如下。 • 目标属性的值={源属性};
17.4 验证数据
• 数据验证是Flex中的数据进行正确性验证。数据 的正确性涉及数据的格式、类型、数值等。本节 主要介绍Flex数据验证机制,主要包括:数据验 证器的创建、数据验证的触发、错误提示和预定 义标准验证器。
17.4.1 使用标准数据验证器
• 在Flex中,为了更加方便的进行数据验证。对于 常用数据,提供了的预定义数据验证器,主要包 括以下几类。 • CurrencyValidator:货币数据验证。 • CreditCardValidator:信用卡数据验证。 • DateValidator:日期数据验证。 • NumberValidator :数字验证。 • PhoneNumberValidator:电话号码验证。 • EmailValidator:邮箱地址验证。 • ZipCodeValidator :邮政区号验证。
17.2.4 多个源属性到目标属性的绑定
• <mx:Binding>标签可以实现多个不同的源属性到 相同的目标属性的绑定。这是通过多个具有相同 目的属性的绑定标签来完成的。但也可以与“{}” 组合定义使用。 • 下面的例子使用用多个源属性的绑定,一个采用 <mx:Binding>标签,一个采用“{}”,如图所示。
•
17.5 格式化数据
• 格式化数据是对数据进行的处理,按照某种约定 的格式以统一的形式输出。在Flex中数据的格式 化是由格式器(formatter)完成的。格式器是一 个可配置的对象,用来将原始数据格式化为定制 数据。通常数据的格式是从显示的角度对绑定到 组件上的数据进行的,主要是减少人工处理的工 作量,提高数据操作的效率。本节主要讲述如何 使用数据格式器,包括格式器的创建、触发、错 误的处理和常用的格式器。
• • •
17.4.4 验证错误提示
• 验证错误提示是当数据验证发生错误时,用户界面上显示的与错 误有关的信息。如前面示例中,日期格式不正确的显示的错误提 示。验证控件在默认情况下已经显示默认的提示错误,但提示的 语言使用的都是英文。为了从更加贴合应用的实际,可以使用不 同的属性定义提示信息。 在下面的例子中,对电话号码的验证器,定义了不同的提示信息。 用户单击验证按钮,触发对输入电话号码的验证。在不同错误下, 验证提示信息如图所示。
17.3.2 数据模型的验证
• 数据模型的验证是对数据模型中保存的数据的正 确性进行检验。在Flex中,数据模型的验证使用 数据验证器(Data Validator)。 • 在下面的例子中,对student数据模型中不同的数 据定义了不同的验证器,
Leabharlann Baidu
17.3.3 数据模型作为值对象
• 数据模型作为值对象,是指将数据模型中保存的 数据值,以对象的方式,在控件之间传递。通常 用在远程服务调用返回时,将结果中一系列数据 或者多个对象数据保存在某个数据模型中。该模 型作为值对象在远程服务和数据控件之间传递数 据。这样会使得在Flex应用中管理和处理数据变 得简单。 • 在下面的例子中,bookDM存储了远程服务操作的 结果。bookInfo组件是一个自定义组件,从 bookDM模型获取数据并显示当前选择图书的详细 信息。
17.3.1 数据模型定义
• 数据模型是ActionScript对象。数据模型的定义 有两种方法:MXML标签、ActionScript函数或者 ActionScript类。通常是根据实际情况,决定使 用哪种方法。对于简单的数据结构使用MXML来定 义,而ActionScript函数或者ActionScript类方 法一般用来定义复杂的数据结构和客户端业务逻 辑。 • 1.使用MXML标签 • 2.使用ActionScript函数和ActionScript类