返回顶部
首页 > 资讯 > 后端开发 > Python >Flex:用checkBox实现DataGrid所有行的选择(全选)
  • 154
分享到

Flex:用checkBox实现DataGrid所有行的选择(全选)

datagridflexfunctionuserencoding 2023-05-25 22:05:52 154人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

<?xml version="1.0" encoding="utf-8"?> <!-- Http://yecon.blog.hexun.com/300

<?xml version="1.0" encoding="utf-8"?>
<!-- Http://yecon.blog.hexun.com/30014829_d.html -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onInit()">
 <mx:Script>
  <![CDATA[
   import mx.collections.ArrayCollection;
   
   [Bindable]
   private var userAC:ArrayCollection = new ArrayCollection();
   [Bindable]
   private var headerThumb:ClassFactory;
   public var isAllSelected:Boolean = false;
   
   private function onInit():void{
    var obj1:User = new User();
    obj1.name = "Tom";
    obj1.age = 22;
    obj1.isChecked = false;
    userAC.addItem(obj1);
    
    var obj2:User = new User();
    obj2.name = "Jane";
    obj2.age = 18;
    obj2.isChecked = true;
    userAC.addItem(obj2);
    
    var obj3:User = new User();
    obj3.name = "Doug";
    obj3.age = 35;
    obj3.isChecked = false;
    userAC.addItem(obj3);
    
    var obj4:User = new User();
    obj4.name = "Bob";
    obj4.age = 24;
    obj4.isChecked = false;
    userAC.addItem(obj4);
    
    headerThumb = new ClassFactory(HeaderThumb);
    headerThumb.properties = {externalObject:this,externalProperty:"isAllSelected"};
    
    addEventListener(UserEvent.HEADER_CHANGED,headerChangedHandler);
    addEventListener(UserEvent.ITEM_CHANGED,itemChangedHandler);
   }
   
   private function headerChangedHandler(event:UserEvent):void{
    for each(var item:User in userAC){
     item.isChecked = event.isSelected;
    }
    isAllSelected = event.isSelected;
   }
   
   private function itemChangedHandler(event:UserEvent):void{
    isAllSelected = event.isSelected;
   }
  ]]>
 </mx:Script>
 <mx:DataGrid dataProvider="{userAC}" width="300" y="10" horizontalCenter="0">
  <mx:columns>
   <mx:DataGridColumn headerRenderer="{headerThumb}" itemRenderer="ItemThumb" sortable="false" width="30"/>
   <mx:DataGridColumn headerText="Name" dataField="name"/>
   <mx:DataGridColumn headerText="Age" dataField="age"/>
  </mx:columns>
 </mx:DataGrid>
</mx:Application>HeaderThumb.mxml:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://yecon.blog.hexun.com/30014829_d.html -->
<mx:canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="20" height="100%" preinitialize="onInit()" implements="mx.core.IFactory">
 <mx:Script>
  <![CDATA[
   import mx.binding.utils.BindingUtils;
   [Bindable]
   public var isSelected:Boolean;
   public var externalObject:*;
   public var externalProperty:String;
   
   private function onInit():void{
    BindingUtils.bindProperty(this,"isSelected",externalObject,externalProperty);
   }
   
   public function newInstance():*{
    return new HeaderThumb();
   }
   
   private function chbxHaederChanged():void{
    var event:UserEvent = new UserEvent(UserEvent.HEADER_CHANGED,chbxHaeder.selected);
    dispatchEvent(event);
   }
  ]]>
 </mx:Script>
 <mx:CheckBox id="chbxHaeder" selected="{isSelected}" change="chbxHaederChanged()" horizontalCenter="0" verticalCenter="0"/>
</mx:Canvas>

--结束END--

本文标题: Flex:用checkBox实现DataGrid所有行的选择(全选)

本文链接: https://lsjlt.com/news/218552.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作