Flex经验总结--给Grid加按钮和事件

Flex在自定义控件方面非常方便,但是由于提供的控件非常不易用,需要自行处理大量的事件和进行扩展

UI代码

<mx:DataGrid dataProvider="{Datas}" itemFocusOut="PoGrid_ItemFocusOut(event);"
keyUp="PoGrid_KeyUp(event);" keyDown="PoGrid_KeyDown(event);"
editable="true" dropEnabled="false" id="PoGrid" width="766" textAlign="left"
shadowDirection="center" shadowDistance="1" dropShadowEnabled="true" height="90">

<mx:DataGridColumn headerText="Operate" width="60" editable="false" sortable="false" >
<mx:itemRenderer>
<mx:Component>
<mx:Button label="Item" click="outerDocument.OpenItem();" ></mx:Button>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>

</mx:DataGrid>

下面的事件是Grid中每个按钮触发的事件

public function OpenItem():void
{
}

//设置一个变量获得当前索引值

private function PoGrid_KeyDown(event:KeyboardEvent):void
{
var item:Object=PoGrid.selectedItem;
if(item==null)return;
if(this.PoGrid.editedItemPosition.columnIndex==PoGrid.columnCount-1)
{
if(event.keyCode== Keyboard.ENTER||event.keyCode==Keyboard.TAB )
{
PoKeyIndex=Datas.getItemIndex(item);
}
}
}

//加入在Gird最后一行按下回车或者tab键时,自动增加新的一行

private function PoGrid_KeyUp(event:KeyboardEvent):void
{
var item:Object=PoGrid.selectedItem;
if(item==null)return;
if(event.keyCode==Keyboard.UP)
{
PoGrid.selectedIndex=PoGrid.selectedIndex-1;
}
else if(event.keyCode==Keyboard.DOWN)
{
PoGrid.selectedIndex=PoGrid.selectedIndex+1;
}
if(this.PoGrid.editedItemPosition.columnIndex==PoGrid.columnCount-1)
{
if(event.keyCode== Keyboard.ENTER||event.keyCode==Keyboard.TAB )
{
var i:int=Datas.getItemIndex(item);
if(i==Datas.length-1)
{
if(PoKeyIndex==Datas.getItemIndex(item))
{
Datas.addItem({ID:UIDUtil.createUID(),No:String(Datas.length+1),PO:item.PO,Item:"",
ItemDescription:"",Color:"",Size:"",Volume:0.00,Weight:0.00,Cartons:0.00,Units:0.00,
Vendor:item.Vendor,Container:item.Container});
}
}
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值