http://download.youkuaiyun.com/source/515173
DataGridExample.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" fontSize="12" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import mx.events.DataGridEvent;
import mx.events.DataGridEventReason
import bookEvent.cartEvent;
import view.*;
internal function initApp():void{
addEventListener("AddBook",AddHandler);
}
internal function AddHandler(evt:cartEvent):void{
if(evt.isAdd){
tip_txt.text = "你选择购买:"+evt.book.name;
}else{
tip_txt.text = "你放弃购买:"+evt.book.name;
}
}
internal function checkInfo(evt:DataGridEvent):void{
//如果没有作修改
if (evt.reason == DataGridEventReason.CANCELLED){
return;
}
//确定修改的属性
if(evt.dataField == "date"){
// 清除原来的数据
evt.preventDefault();
// 得到新的数据
book_DG.editedItemRenderer.data.date = dateCell(DataGrid(evt.target).itemEditorInstance).num_year.value;
// 关闭item editor
book_DG.destroyItemEditor();
//更新数据源
book_DG.dataProvider.itemUpdated(evt.itemRenderer.data);
}
}
]]>
</mx:Script>
<mx:Model id="books">
<datas>
<book>
<name>Flash第一步</name>
<author>陈冰</author>
<date>2006</date>
</book>
<book>
<name>Flex第一步</name>
<author>walktree</author>
<date>2007</date>
</book>
<book>
<name>Apollo第一步</name>
<author>还不知道呢</author>
<date>2008</date>
</book>
</datas>
</mx:Model>
<mx:Label width="100%" color="#004080" text="选择一本书购买"/>
<mx:DataGrid editable="true" id="book_DG" width="100%" height="156" itemEditEnd="checkInfo(event)" rowCount="5" dataProvider="{books.book}">
<mx:columns>
<mx:DataGridColumn dataField="name" headerText="书名"/>
<mx:DataGridColumn dataField="author" headerText="作者"/>
<mx:DataGridColumn dataField="date" headerText="出版日期" itemEditor="view.dateCell" />
<mx:DataGridColumn headerText="购买" itemRenderer="view.cartCell" editable="false"/>
</mx:columns>
</mx:DataGrid>
<mx:Canvas height="150" width="100%" backgroundColor="#ffffff">
<mx:Label id="tip_txt" text="还没有选择书目"/>
</mx:Canvas>
</mx:Application>
bookEvent.cartEvent.as
package bookEvent
{
import flash.events.Event;
public class cartEvent extends Event{
public var isAdd:Boolean;
public var book:Object;
function cartEvent(_data:Object,_isAdd:Boolean):void{
isAdd = _isAdd;
book = _data;
super("AddBook");
}
}
}
view.cartCell.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import bookEvent.cartEvent;
internal function addCart():void{
this.parentApplication.dispatchEvent(new cartEvent(data,cart_check.selected));
}
]]>
</mx:Script>
<mx:CheckBox id="cart_check" x="0" y="0" label="购买" change="addCart()"/>
</mx:Canvas>
view.dateCell.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="180">
<mx:NumericStepper id="num_year" x="0" y="0" minimum="1900" maximum="2100" value="{data.date}"/>
<mx:Label text="请选择年份" x="96" y="2"/>
</mx:Canvas>
本文介绍了一个使用 Flex 实现的 DataGrid 示例应用,该应用展示了如何通过 DataGrid 控件实现书籍列表的编辑功能,并集成了购买选项及日期字段的自定义编辑器。
165

被折叠的 条评论
为什么被折叠?



