数据存储是指在编程过程中将数据以特定的形式存储。简单的数据模型可以用简单的数据类型存储,如int型、String型、Array型。对于复杂的逻辑模型,需要将数据合理存储。Flex 3.0提供了<mx:Model>、<mx:Object>、<mx:XML>3种存储复杂的数据模型。用户可以灵活地设计适合的数据存储类型。
<mx:Model>组件是Flex 3.0中的数据模型组件,用于存储自定义的数据。<mx:Model>以树型结构存储,类似XML数据定义。树型存储结构的优点是定位迅速、容易理解。<mx:Model>组件存储数据的语法如下所示。
<mx:Model id="Model组件id">
<根节点>
<节点1/>
<节点2/>
…
</根节点>
</mx:Model>
<mx:Model>组件定义数据时必须有根节点,即<mx:Model>标签下的有一节点能包括全部的其他节点。
以下代码使用<mx:Model>组件定义了员工的数据模型,包括名称、部门、E-mail等信息。将<mx:Model>组件中的数据作为DataGrid组件的数据源并显示。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="13">
<mx:Model id="employeemodel"> <!--Model组件,用于存储数据-->
<employees>
<employee>
<name>John Smith</name>
<department>技术部</department>
<email>[email protected]</email>
</employee>
<employee>
<name>Tom Steve</name>
<department>人力资源部</department>
<email>[email protected]</email>
</employee>
</employees>
</mx:Model>
<mx:Panel title="使用Model组件">
<!--DataGrid组件,用于表格显示数据-->
<mx:DataGrid dataProvider="{employeemodel.employee}">
<mx:columns>
<mx:DataGridColumn dataField="name" headerText="员工名"/>
<mx:DataGridColumn dataField="department" headerText="部门"/>
<mx:DataGridColumn dataField="email" headerText="Email"/>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
指向<mx:Model>组件中的数据时需要跳过根节点,这与XML组件有所不同。本程序中指向员工数据的代码为“employeemodel.employee”,跳过了根节点<employees>。
本程序的运行代码如图19-3所示