FlexDataGrid中CheckBox用法

本文介绍了一个使用 Flex 实现的 DataGrid 示例应用,该应用展示了如何通过 DataGrid 控件实现书籍列表的编辑功能,并集成了购买选项及日期字段的自定义编辑器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值