Flex4 DataGrid 中添加编辑和删除按钮
2013-05-22 16:21
417 查看
目的是在一个DataGrid里实现点击按钮进行对DataGrid这一行的修改和删除。不多说直接上代码,看样式:
public var users:ArrayCollection=new ArrayCollection([ {id: 1, username: "aaa", dept: "开发部", phone: "11133333", email: "aaa@hotmail.com"}, {id: 2, username: "bbb", dept: "产品部", phone: "3432423", email: "ddd@ho.com"}, {id: 3, username: "ccc", dept: "开发部", phone: "32424", email: "3432@126.com"}, {id: 4, username: "ddd", dept: "产品部", phone: "334354", email: "dsf@123.com"}]);
<s:DataGrid id="userlist" dataProvider="{users}" width="100%" height="100%" fontWeight="normal" horizontalCenter="0" verticalCenter="0"> <s:columns> <s:ArrayList> <s:GridColumn headerText="用户名" dataField="username"/> <s:GridColumn headerText="邮箱" dataField="email"/> <s:GridColumn headerText="部门" dataField="dept"/> <s:GridColumn headerText="电话" dataField="phone"/> <s:GridColumn headerText="" dataField="id" width="50"> <s:itemRenderer> <fx:Component> <s:GridItemRenderer> <mx:LinkButton toolTip="编辑" click="updatebtn(event);" icon="@Embed('../../../assets/images/update.gif')" width="100%" height="100%"> <fx:Script> <![CDATA[ import cn.com.common.event.UpdateEvent; private function updatebtn(event:MouseEvent):void { dispatchEvent(new UpdateEvent(data)); } ]]> </fx:Script> </mx:LinkButton> </s:GridItemRenderer> </fx:Component> </s:itemRenderer> </s:GridColumn> <s:GridColumn dataField="id" headerText="" width="50"> <s:itemRenderer> <fx:Component> <s:GridItemRenderer> <mx:LinkButton toolTip="删除" click="deletebtn(event);" icon="@Embed('../../../assets/images/delete.gif')" width="100%" height="100%"> <fx:Script> <![CDATA[ import cn.com.common.event.DeleteEvent; private function deletebtn(event:MouseEvent):void { dispatchEvent(new DeleteEvent(data)); } ]]> </fx:Script> </mx:LinkButton> </s:GridItemRenderer> </fx:Component> </s:itemRenderer> </s:GridColumn> </s:ArrayList> </s:columns> </s:DataGrid>重点是在GridColumn里进行自定义渲染。这里需要注意,在Flex4里和Flex3的渲染是不太一样的,多了一个GridItemRenderer。当点击Renderer里的LinkButton时派发删除或者修改事件,下面是两个自定义事件的代码:
public class DeleteEvent extends Event { static public const DELETEEVENT:String = "deleteevent"; public var data:Object; public function DeleteEvent(data:Object, bubbles:Boolean=true, cancelable:Boolean=false) { super(DELETEEVENT, bubbles, cancelable); this.data=data; } }
public class UpdateEvent extends Event { static public const UPDATEEVENT:String="updateevent"; public var data:Object; public function UpdateEvent(data:Object, bubbles:Boolean=true, cancelable:Boolean=false) { super(UPDATEEVENT, bubbles, cancelable); this.data=data; } }
第一个是删除事件,第二个修改事件,这样就可以用自己的时间去捕获删除和修改事件,而不用DataGrid的click事件了。这两个事件是这样用的:
userlist.addEventListener(DeleteEvent.DELETEEVENT, deleteuserHandler); userlist.addEventListener(UpdateEvent.UPDATEEVENT, updateuserHandler);
对这两个事件进行监听。
private function updateuserHandler(event:UpdateEvent):void { //这里就是修改事件,可以弹出一个TitleWindow进行修改 } private function deleteuserHandler(event:DeleteEvent):void { Alert.show("确定要删除此记录?", "提示框", Alert.YES | Alert.NO, this, function():void//这里用到了内部类,这样可以将event中的数据进行应用 { var idStr:String=event.data.id; for(var i:int=0;i<users.length;i++) { if(users.getItemAt(i).id==idStr) users.removeItemAt(i); } }); }
相关文章推荐
- jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
- 给DataGrid的删除按钮添加"删除确认"对话框
- silverlight DataGrid 添加删除列/删除按钮
- asp.net与JQuery EasyUi DataGrid 服务器端分页,添加增加,修改,删除 按钮
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(82)-Easyui Datagrid批量操作(编辑,删除,添加)
- 重写QLineEdit,实现编辑框内添加删除按钮的功能(随时把控件Move到一个地方,然后show就可以了,这是万能的办法)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(82)-Easyui Datagrid批量操作(编辑,删除,添加)
- DataGrid 删除按钮添加删除对话框
- 给DataGrid的删除按钮添加"删除确认"对话框
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(82)-Easyui Datagrid批量操作(编辑,删除,添加)
- 基于asp.net + easyui框架,一步步学习easyui-datagrid——实现添加、编辑、删除(三)
- easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮
- 基于asp.net + easyui框架,一步步学习easyui-datagrid——实现添加、编辑、删除(三)
- GridView 添加、删除、编辑按钮问题
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(82)-Easyui Datagrid批量操作(编辑,删除,添加)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(82)-Easyui Datagrid批量操作(编辑,删除,添加)
- 添加了自定义的编辑和删除按钮
- Flex4在datagrid单元格中添加按钮/图片等丰富内容
- 添加删除、更新按钮的提示确认信息,以及DATAGRID的添加、插入、更新、删除操作。
- 给DataGrid的删除按钮添加"删除确认"对话框