Flex教程/组件详解之一:DataGrid(4)

Flex教程/组件详解之一:DataGrid(4)| 作者: L4cd.Net ] 字号: 大 | 中 | 小

 今天我们继续讲DataGrid,介绍一下DataGrid中数据的增加/删除/获取。 添加/删除由于DataGrid的数据都绑定于Array或XML,所以我们需要增加记当或删除记录的时候..只需要对所绑定的数据进行相应的操作即可。这里就不多说了..一会直接看代码。要提示一下的是..虽然数据与DataGrid进行的绑定.不过好像修改了数据源不会立刻更新..需要DataGrid对数据源进行一次反向操作(就在是DataGrid下进行编辑,下一节会介绍),才会进行更新,所以如果希望立刻更新的话..我们可以再指行一次数据指定.. DataGrid.dataProvider = 数据源 获取这里所说的获取..是当我们对DataGrid进行的操作(点击项目)的时候..进行所点击的位置索引与数据的获取. (如果要获取指定第几行,每几列的数据,这样对数据源进行操作即可) 当我们侦听itemClick事件的时候..将会接收到一个ListEvent事件对象..对象里分别有所点击单元格的列索引与列索引,我们就从这两个数据进行其它数据的获取.. (ps:下边提到的e为ListEvent事件对象..)

1.所点击的列的表头 (e.target as DataGrid).columns[e.columnIndex].headerText

2.点击的列索引 e.columnIndex

3.点击的行索引 e.rowIndex

4.点击的整行的数据(选中的数据) (e.target as DataGrid).selectedItem

5.选中的单元格的数据 (e.target as DataGrid).selectedItem[(e.target as DataGrid).columns[e.columnIndex].dataField]

  1. <?xml version=""1.0""?>     
  2. <mx:Application xmlns:mx=""http://www.adobe.com/2006/mxml""      
  3. layout=""absolute"" width=""450"" fontFamily=""宋体"" fontSize=""12"" height=""400"">     
  4.     <mx:Script>     
  5.     <![CDATA[     
  6.     import mx.controls.*;     
  7.     import mx.events.ListEvent;   
  8.     import mx.controls.dataGridClasses.*;     
  9.     private var DataGrid1:DataGrid;     
  10.        
  11.     [Bindable]//原始数据   
  12.     public var dataArr:Array = [{id:1,name:""苹果"",count:100},     
  13.     {id:2,name:""西瓜"",count:200},     
  14.     {id:3,name:""水蜜桃"",count:50}]     
  15.        
  16.     private function addItem():void{     
  17.                 dataArr.push({id:uiId.value,name:uiName.text,count:uiCount.value})   
  18.                 DataGrid2.dataProvider = dataArr   
  19.     }     
  20.     private function delItem():void{     
  21.                 dataArr.pop();   
  22.                 DataGrid2.dataProvider = dataArr   
  23.     }     
  24.     private function itemClick(e:ListEvent):void{   
  25.         var txt:String = ""表头为: ""+(e.target as DataGrid).columns[e.columnIndex].headerText+""/n""  
  26.         txt+=""选中第 ""+e.columnIndex+"" 列/n""  
  27.         txt+=""选中第 ""+e.rowIndex+"" 行/n""  
  28.         txt+=""选中的行的数据为:/n""  
  29.         var dat:Object = (e.target as DataGrid).selectedItem   
  30.         for(var i:* in dat){   
  31.             txt+="" ""+i+"":""+dat[i]+""/n""  
  32.         }   
  33.         txt+=""选中的单元可格的数据为 ""+(e.target as DataGrid).selectedItem[(e.target as DataGrid).columns[e.columnIndex].dataField]+"" /n""  
  34.         Alert.show(txt)   
  35.         }   
  36.     ]]>     
  37.     </mx:Script>     
  38.        
  39.     <mx:DataGrid id=""DataGrid2"" itemClick=""itemClick(event)"" dataProvider=""{dataArr}"" width=""430"" y=""10"" x=""10"" height=""208"">     
  40.     <mx:columns>     
  41.     <mx:DataGridColumn headerText=""序号"" dataField=""id""/>     
  42.     <mx:DataGridColumn headerText=""名称"" dataField=""name""/>     
  43.     <mx:DataGridColumn headerText=""数量"" dataField=""count"" editorDataField=""value""/>     
  44.     </mx:columns>     
  45.     </mx:DataGrid>     
  46.     <mx:NumericStepper id=""uiId"" x=""10"" y=""241"" width=""150""/>   
  47.     <mx:TextInput id=""uiName"" x=""10"" y=""288"" width=""150""/>   
  48.     <mx:NumericStepper id=""uiCount"" x=""10"" y=""335"" width=""150""/>   
  49.     <mx:Label x=""10"" y=""224"" text=""序号:""/>   
  50.     <mx:Label x=""10"" y=""271"" text=""名称:""/>   
  51.     <mx:Label x=""10"" y=""318"" text=""数量:""/>   
  52.     <mx:Button click=""addItem()"" x=""10"" y=""368"" label=""添加"" width=""150""/>   
  53.     <mx:Button click=""delItem()"" x=""290"" y=""368"" label=""删除最后一个"" width=""150""/>   
  54. </mx:Application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值