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

今天我们继续讲DataGrid,介绍一下DataGrid中数据的增加/删除/获取。

添加/删除
由于DataGrid的数据都绑定于ArrayXML,所以我们需要增加记当或删除记录的时候..只需要对所绑定的数据进行相应的操作即可。这里就不多说了..一会直接看代码。
要提示一下的是..虽然数据与DataGrid进行的绑定.不过好像修改了数据源不会立刻更新..需要DataGrid对数据源进行一次反向操作(就在是DataGrid下进行编辑,下一节会介绍),才会进行更新,所以如果希望立刻更新的话..我们可以再指行一次数据指定..
DataGrid.dataProvider = 数据源

获取
这里所说的获取..是当我们对DataGrid进行的操作(点击项目)的时候..进行所点击的位置索引与数据的获取.
(
如果要获取指定第几行,每几列的数据,这样对数据源进行操作即可)

当我们侦听itemClick事件的时候..将会接收到一个ListEvent事件对象..对象里分别有所点击单元格的列索引与列索引,我们就从这两个数据进行其它数据的获取..
(ps:
下边提到的eListEvent事件对象..)
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]

完整代码:

<?xml version=""1.0""?>
<mx:Application xmlns:mx=""http://www.adobe.com/2006/mxml""
layout=""absolute"" width=""450"" fontFamily=""
宋体"" fontSize=""12"" height=""400"">
 <mx:Script>
 <![CDATA[
 import mx.controls.*;
 import mx.events.ListEvent;
 import mx.controls.dataGridClasses.*;
 private var DataGrid1:DataGrid;
 
 [Bindable]//
原始数据
 public var dataArr:Array = [{id:1,name:""
苹果"",count:100},
 {id:2,name:""
西瓜"",count:200},
 {id:3,name:""
水蜜桃"",count:50}]
 
 private function addItem():void{
        dataArr.push({id:uiId.value,name:uiName.text,count:uiCount.value})
        DataGrid2.dataProvider = dataArr
 }
 private function delItem():void{
        dataArr.pop();
        DataGrid2.dataProvider = dataArr
 }
 private function itemClick(e:ListEvent):void{
   var txt:String = ""
表头为: ""+(e.target as DataGrid).columns[e.columnIndex].headerText+""/n""
   txt+=""
选中第 ""+e.columnIndex+"" /n""
   txt+=""
选中第 ""+e.rowIndex+"" /n""
   txt+=""
选中的行的数据为:/n""
   var dat:Object = (e.target as DataGrid).selectedItem
   for(var i:* in dat){
     txt+=""
 ""+i+"":""+dat[i]+""/n""
   }
   txt+=""
选中的单元可格的数据为 ""+(e.target as DataGrid).selectedItem[(e.target as DataGrid).columns[e.columnIndex].dataField]+"" /n""
   Alert.show(txt)
   }
 ]]>
 </mx:Script>
 
 <mx:DataGrid id=""DataGrid2"" itemClick=""itemClick(event)"" dataProvider=""{dataArr}"" width=""430"" y=""10"" x=""10"" height=""208"">
 <mx:columns>
 <mx:DataGridColumn headerText=""
序号"" dataField=""id""/>
 <mx:DataGridColumn headerText=""
名称"" dataField=""name""/>
 <mx:DataGridColumn headerText=""
数量"" dataField=""count"" editorDataField=""value""/>
 </mx:columns>
 </mx:DataGrid>
 <mx:NumericStepper id=""uiId"" x=""10"" y=""241"" width=""150""/>
 <mx:TextInput id=""uiName"" x=""10"" y=""288"" width=""150""/>
 <mx:NumericStepper id=""uiCount"" x=""10"" y=""335"" width=""150""/>
 <mx:Label x=""10"" y=""224"" text=""
序号:""/>
 <mx:Label x=""10"" y=""271"" text=""
名称:""/>
 <mx:Label x=""10"" y=""318"" text=""
数量:""/>
 <mx:Button click=""addItem()"" x=""10"" y=""368"" label=""
添加"" width=""150""/>
 <mx:Button click=""delItem()"" x=""290"" y=""368"" label=""
删除最后一个"" width=""150""/>
</mx:Application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值