- 浏览: 54230 次
- 性别:
- 来自: 天津
最近访客 更多访客>>
最新评论
-
shuiyunbing:
单元格样式怎么处理?
将flex页面数据导出到excel -
gaoyide:
啥破玩意!!
FLEX alive pdf 打印pdf -
zhong_pro:
关于博主的问题点,做如下修改就可以达到不需要属性isSelec ...
Flex 4通过重写DataGridColumn和CheckBox类给DataGrid添加选择列-CheckBoxColumn -
zhenxingzzx:
看不到附件的 !!
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法 -
pangxin12345:
dingdingdingdingding
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
最近在尝试着用Flex做个文件按管理的工具,在文件列表中为了操作方便,想到了再列表控件DataGird中添加一个含有复选框的列,在表头的复选框可以实现全选功能,但DataGird自身并无此功能。参照网上的相关资料,总算折腾出来了,现把源码奉上,希望对需要的朋友有点帮助,不足之处也请高手指点。
最终的CheckBoxColumn包包含四个相关的类文件,分别是:
1、CenterCheckBox.as:通过重写CheckBox基类来实现复选框的居中显示;
2、CheckBoxColumn.as:继承自DataGridColumn的一个新类,为了实现需要,增添了几个新属性;
3、CheckBoxHeaderRenderer.as:继承自CenterCheckBox 类,用于DataGrid表头的复选框,实现全选功能;
4、CheckBoxItemRenderer.as:继承自CenterCheckBox 类,用于DataGrid表中的数据行;
各文件源码如下:
1、CenterCheckBox.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import flash.display.DisplayObject;
4. import mx.controls.CheckBox;
5. import flash.text.TextField;
6.
7. public class CenterCheckBox extends CheckBox
8. {
9. // 居中展现
10. override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
11. {
12. super.updateDisplayList(unscaledWidth, unscaledHeight);
13. var n:int = numChildren;
14. for(var i:int = 0; i < n; i++)
15. {
16. var c:DisplayObject = getChildAt(i);
17. if( !(c is TextField))
18. {
19. c.x = Math.round((unscaledWidth - c.width) / 2);
20. c.y = Math.round((unscaledHeight - c.height) /2 );
21. }
22. }
23. }
24. }
25. }
2、DataGridColumn.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import mx.controls.dataGridClasses.DataGridColumn;
4.
5. public class CheckBoxColumn extends DataGridColumn{
6.
7. public var cloumnSelected:Boolean=false;//保存该列是否全选的属性(用户先点击全选后在手动的取消几行数据的选中状态时,这里的状态不会改变)
8.
9. public var selectItems:Array = new Array();//用户保存用户选中的数据
10.
11.
12. public function CheckBoxColumn(columnName:String=null){
13. super(columnName);
14. }
15. }
16. }
3、CheckBoxHeaderRenderer.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import flash.events.Event;
4.
5. import mx.collections.ArrayCollection;
6. import mx.controls.CheckBox;
7. import mx.controls.DataGrid;
8.
9. public class CheckBoxHeaderRenderer extends CenterCheckBox{
10.
11. private var _data:CheckBoxColumn;//定义CheckBox列对象
12. public function CheckBoxHeaderRenderer(){
13. super();
14. this.addEventListener(Event.CHANGE,onChange);//CheckBox状态变化时触发此事件
15. this.toolTip = "全选";
16. }
17.
18.
19. override public function get data():Object{
20. return _data;//返回的是CheckBox列的对象
21.
22. }
23.
24. override public function set data(value:Object):void{
25. _data = value as CheckBoxColumn;
26. //trace(_data.cloumnSelected);
27. selected = _data.cloumnSelected;
28. }
29.
30. private function onChange(event:Event):void{
31.
32. var dg:DataGrid = DataGrid(listData.owner);//获取DataGrid对象
33. var column:CheckBoxColumn = dg.columns[listData.columnIndex];//获取整列的显示对象
34.
35. var dgDataArr:ArrayCollection = dg.dataProvider as ArrayCollection;
36.
37. column.cloumnSelected = this.selected;//更改列的全选状态
38.
39. column.selectItems = new Array();//重新初始化用于保存选中列的对象
40.
41. if(this.selected){//如果为全部选中的化就将数据源赋值给column.selectItems,不是就不管他,上一步已经初始化为空
42. column.selectItems = (dg.dataProvider as ArrayCollection).toArray();
43.
44. }
45. if(dgDataArr.length>0){
46. if(dgDataArr[0]!=""){
47. for(var i:int = 0; i < dgDataArr.length ; i++){
48. Object(dgDataArr[i]).dgSelected = this.selected;//更改没一行的选中状态
49. }
50. }
51. }
52. dgDataArr.refresh();//刷新数据源,达到强制更新页面显示效果的功能,防止在使用时没有在VO类中使用绑定而出现点击全选页面没有更改状态的错误
53. }
54. }
55. }
4、CheckBoxItemRenderer.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import flash.events.Event;
4. import flash.events.MouseEvent;
5. import mx.controls.CheckBox;
6. import mx.controls.DataGrid;
7.
8. public class CheckBoxItemRenderer extends CenterCheckBox{
9. private var currentData:Object; //保存当前一行值的对象
10.
11. public function CheckBoxItemRenderer(){
12. super();
13. this.addEventListener(Event.CHANGE,onClickCheckBox);
14. this.toolTip = "选择";
15. }
16.
17. override public function set data(value:Object):void{
18. this.selected = value.dgSelected;
19. this.currentData = value; //保存整行的引用
20. }
21.
22. //点击check box时,根据状况向selectedItems array中添加当前行的引用,或者从array中移除
23. private function onClickCheckBox(e:Event):void{
24. var dg:DataGrid = DataGrid(listData.owner);//获取DataGrid对象
25. var column:CheckBoxColumn = dg.columns[listData.columnIndex];//获取整列的显示对象
26. var selectItems:Array = column.selectItems;
27. this.currentData.dgSelected = this.selected;//根据是否选中的状态,更改数据源中选中的标记
28. if(this.selected){
29. selectItems.push(this.currentData);
30. }else{
31. for(var i:int = 0; i<selectItems.length; i++){
32. if(selectItems[i] == this.currentData){
33. selectItems.splice(i,1)
34. }
35. }
36. }
37. }
38. }
39. }
调用示例:
1、在mxml中作为控件调用:
1. <?xml version="1.0" encoding="utf-8"?>
2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
3. xmlns:s="library://ns.adobe.com/flex/spark"
4. xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768"
5. xmlns:CheckBoxColumn="Common.YotuoUpload.CheckBoxColumn.*"
6. creationComplete="Init()">
7. <fx:Script>
8. <![CDATA[
9. import Common.YotuoUpload.CheckBoxColumn.CheckBoxHeaderRenderer;
10. import Common.YotuoUpload.CheckBoxColumn.CheckBoxItemRenderer;
11. import mx.collections.ArrayCollection;
12.
13. public var dataArray:ArrayCollection = new ArrayCollection;
14.
15. private function Init():void{
16. dataArray.addItem({isSelected:false,name:'Christina Coenraets',phone:'555-219-2270',email:'ccoenraets@fictitious.com'});
17. dataArray.addItem({isSelected:false,name:'Joanne Wall',phone:'555-219-2012',email:'jwall@fictitious.com'});
18. dataArray.addItem({isSelected:false,name:'Maurice Smith',phone:'555-219-2012',email:'maurice@fictitious.com'});
19. dataArray.addItem({isSelected:false,name:'Mary Jones',phone:'555-219-2000',email:'mjones@fictitious.com'});
20. dataArray.addItem({isSelected:false,name:'God Win',phone:'555-219-2005',email:'godwin@fictitious.com'});
21. dgUser.dataProvider = dataArray;
22. }
23. ]]>
24. </fx:Script>
25. <mx:DataGrid id="dgUser" x="10" y="10" width="450" height="200">
26. <mx:columns>
27. <CheckBoxColumn:CheckBoxColumn dataField="isSelected" width="25"
28. draggable="false" resizable="false" sortable="false"
29. headerRenderer="{new ClassFactory(CheckBoxHeaderRenderer)}"
30. itemRenderer="{new ClassFactory(CheckBoxItemRenderer)}"
31. />
32. <mx:DataGridColumn headerText="姓名" dataField="name"/>
33. <mx:DataGridColumn headerText="电话" dataField="phone"/>
34. <mx:DataGridColumn headerText="邮件" dataField="email"/>
35. </mx:columns>
36. </mx:DataGrid>
37. </s:Application>
2、通过代码动态调用:
1. <?xml version="1.0" encoding="utf-8"?>
2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
3. xmlns:s="library://ns.adobe.com/flex/spark"
4. xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768"
5. creationComplete="Init()">
6. <fx:Script>
7. <![CDATA[
8. import mx.controls.dataGridClasses.DataGridColumn;
9. import Common.YotuoUpload.CheckBoxColumn.CheckBoxColumn;
10. import Common.YotuoUpload.CheckBoxColumn.CheckBoxHeaderRenderer;
11. import Common.YotuoUpload.CheckBoxColumn.CheckBoxItemRenderer;
12. import mx.collections.ArrayCollection;
13.
14. public var dataArray:ArrayCollection = new ArrayCollection;
15.
16. private function Init():void{
17. dataArray.addItem({isSelected:false,name:'Christina Coenraets',phone:'555-219-2270',email:'ccoenraets@fictitious.com'});
18. dataArray.addItem({isSelected:false,name:'Joanne Wall',phone:'555-219-2012',email:'jwall@fictitious.com'});
19. dataArray.addItem({isSelected:false,name:'Maurice Smith',phone:'555-219-2012',email:'maurice@fictitious.com'});
20. dataArray.addItem({isSelected:false,name:'Mary Jones',phone:'555-219-2000',email:'mjones@fictitious.com'});
21. dataArray.addItem({isSelected:false,name:'God Win',phone:'555-219-2005',email:'godwin@fictitious.com'});
22.
23. var _checkBoxCloumn:CheckBoxColumn = new CheckBoxColumn();
24. _checkBoxCloumn.dataField = "isSelected";
25. _checkBoxCloumn.headerRenderer = new ClassFactory(CheckBoxHeaderRenderer);
26. _checkBoxCloumn.itemRenderer = new ClassFactory(CheckBoxItemRenderer);
27. _checkBoxCloumn.width = 30;
28. _checkBoxCloumn.sortable = false;
29. _checkBoxCloumn.draggable = false;
30.
31. var _nameColumn:DataGridColumn = new DataGridColumn();
32. _nameColumn.headerText = "姓名";
33. _nameColumn.dataField = "name";
34.
35. var _telColumn:DataGridColumn = new DataGridColumn();
36. _telColumn.headerText = "电话";
37. _telColumn.dataField = "phone";
38.
39. var _emailColumn:DataGridColumn = new DataGridColumn();
40. _emailColumn.headerText = "邮件";
41. _emailColumn.dataField = "email";
42.
43. dgUser.columns = new Array(_checkBoxCloumn,_nameColumn,_telColumn,_emailColumn);
44. dgUser.dataProvider = dataArray;
45. }
46. ]]>
47. </fx:Script>
48. <mx:DataGrid id="dgUser" x="10" y="10" width="450" height="200" />
49. </s:Application>
PS:该组件要求在数据源中存在属性isSelected(Boolean类型,用来记录当前行是否被选中)属性,这样就限制了程序的通用性,试了很多方法都未很好解决,希望有办法解决的朋友给以指点。
最终的CheckBoxColumn包包含四个相关的类文件,分别是:
1、CenterCheckBox.as:通过重写CheckBox基类来实现复选框的居中显示;
2、CheckBoxColumn.as:继承自DataGridColumn的一个新类,为了实现需要,增添了几个新属性;
3、CheckBoxHeaderRenderer.as:继承自CenterCheckBox 类,用于DataGrid表头的复选框,实现全选功能;
4、CheckBoxItemRenderer.as:继承自CenterCheckBox 类,用于DataGrid表中的数据行;
各文件源码如下:
1、CenterCheckBox.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import flash.display.DisplayObject;
4. import mx.controls.CheckBox;
5. import flash.text.TextField;
6.
7. public class CenterCheckBox extends CheckBox
8. {
9. // 居中展现
10. override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
11. {
12. super.updateDisplayList(unscaledWidth, unscaledHeight);
13. var n:int = numChildren;
14. for(var i:int = 0; i < n; i++)
15. {
16. var c:DisplayObject = getChildAt(i);
17. if( !(c is TextField))
18. {
19. c.x = Math.round((unscaledWidth - c.width) / 2);
20. c.y = Math.round((unscaledHeight - c.height) /2 );
21. }
22. }
23. }
24. }
25. }
2、DataGridColumn.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import mx.controls.dataGridClasses.DataGridColumn;
4.
5. public class CheckBoxColumn extends DataGridColumn{
6.
7. public var cloumnSelected:Boolean=false;//保存该列是否全选的属性(用户先点击全选后在手动的取消几行数据的选中状态时,这里的状态不会改变)
8.
9. public var selectItems:Array = new Array();//用户保存用户选中的数据
10.
11.
12. public function CheckBoxColumn(columnName:String=null){
13. super(columnName);
14. }
15. }
16. }
3、CheckBoxHeaderRenderer.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import flash.events.Event;
4.
5. import mx.collections.ArrayCollection;
6. import mx.controls.CheckBox;
7. import mx.controls.DataGrid;
8.
9. public class CheckBoxHeaderRenderer extends CenterCheckBox{
10.
11. private var _data:CheckBoxColumn;//定义CheckBox列对象
12. public function CheckBoxHeaderRenderer(){
13. super();
14. this.addEventListener(Event.CHANGE,onChange);//CheckBox状态变化时触发此事件
15. this.toolTip = "全选";
16. }
17.
18.
19. override public function get data():Object{
20. return _data;//返回的是CheckBox列的对象
21.
22. }
23.
24. override public function set data(value:Object):void{
25. _data = value as CheckBoxColumn;
26. //trace(_data.cloumnSelected);
27. selected = _data.cloumnSelected;
28. }
29.
30. private function onChange(event:Event):void{
31.
32. var dg:DataGrid = DataGrid(listData.owner);//获取DataGrid对象
33. var column:CheckBoxColumn = dg.columns[listData.columnIndex];//获取整列的显示对象
34.
35. var dgDataArr:ArrayCollection = dg.dataProvider as ArrayCollection;
36.
37. column.cloumnSelected = this.selected;//更改列的全选状态
38.
39. column.selectItems = new Array();//重新初始化用于保存选中列的对象
40.
41. if(this.selected){//如果为全部选中的化就将数据源赋值给column.selectItems,不是就不管他,上一步已经初始化为空
42. column.selectItems = (dg.dataProvider as ArrayCollection).toArray();
43.
44. }
45. if(dgDataArr.length>0){
46. if(dgDataArr[0]!=""){
47. for(var i:int = 0; i < dgDataArr.length ; i++){
48. Object(dgDataArr[i]).dgSelected = this.selected;//更改没一行的选中状态
49. }
50. }
51. }
52. dgDataArr.refresh();//刷新数据源,达到强制更新页面显示效果的功能,防止在使用时没有在VO类中使用绑定而出现点击全选页面没有更改状态的错误
53. }
54. }
55. }
4、CheckBoxItemRenderer.as
1. package Common.YotuoUpload.CheckBoxColumn
2. {
3. import flash.events.Event;
4. import flash.events.MouseEvent;
5. import mx.controls.CheckBox;
6. import mx.controls.DataGrid;
7.
8. public class CheckBoxItemRenderer extends CenterCheckBox{
9. private var currentData:Object; //保存当前一行值的对象
10.
11. public function CheckBoxItemRenderer(){
12. super();
13. this.addEventListener(Event.CHANGE,onClickCheckBox);
14. this.toolTip = "选择";
15. }
16.
17. override public function set data(value:Object):void{
18. this.selected = value.dgSelected;
19. this.currentData = value; //保存整行的引用
20. }
21.
22. //点击check box时,根据状况向selectedItems array中添加当前行的引用,或者从array中移除
23. private function onClickCheckBox(e:Event):void{
24. var dg:DataGrid = DataGrid(listData.owner);//获取DataGrid对象
25. var column:CheckBoxColumn = dg.columns[listData.columnIndex];//获取整列的显示对象
26. var selectItems:Array = column.selectItems;
27. this.currentData.dgSelected = this.selected;//根据是否选中的状态,更改数据源中选中的标记
28. if(this.selected){
29. selectItems.push(this.currentData);
30. }else{
31. for(var i:int = 0; i<selectItems.length; i++){
32. if(selectItems[i] == this.currentData){
33. selectItems.splice(i,1)
34. }
35. }
36. }
37. }
38. }
39. }
调用示例:
1、在mxml中作为控件调用:
1. <?xml version="1.0" encoding="utf-8"?>
2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
3. xmlns:s="library://ns.adobe.com/flex/spark"
4. xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768"
5. xmlns:CheckBoxColumn="Common.YotuoUpload.CheckBoxColumn.*"
6. creationComplete="Init()">
7. <fx:Script>
8. <![CDATA[
9. import Common.YotuoUpload.CheckBoxColumn.CheckBoxHeaderRenderer;
10. import Common.YotuoUpload.CheckBoxColumn.CheckBoxItemRenderer;
11. import mx.collections.ArrayCollection;
12.
13. public var dataArray:ArrayCollection = new ArrayCollection;
14.
15. private function Init():void{
16. dataArray.addItem({isSelected:false,name:'Christina Coenraets',phone:'555-219-2270',email:'ccoenraets@fictitious.com'});
17. dataArray.addItem({isSelected:false,name:'Joanne Wall',phone:'555-219-2012',email:'jwall@fictitious.com'});
18. dataArray.addItem({isSelected:false,name:'Maurice Smith',phone:'555-219-2012',email:'maurice@fictitious.com'});
19. dataArray.addItem({isSelected:false,name:'Mary Jones',phone:'555-219-2000',email:'mjones@fictitious.com'});
20. dataArray.addItem({isSelected:false,name:'God Win',phone:'555-219-2005',email:'godwin@fictitious.com'});
21. dgUser.dataProvider = dataArray;
22. }
23. ]]>
24. </fx:Script>
25. <mx:DataGrid id="dgUser" x="10" y="10" width="450" height="200">
26. <mx:columns>
27. <CheckBoxColumn:CheckBoxColumn dataField="isSelected" width="25"
28. draggable="false" resizable="false" sortable="false"
29. headerRenderer="{new ClassFactory(CheckBoxHeaderRenderer)}"
30. itemRenderer="{new ClassFactory(CheckBoxItemRenderer)}"
31. />
32. <mx:DataGridColumn headerText="姓名" dataField="name"/>
33. <mx:DataGridColumn headerText="电话" dataField="phone"/>
34. <mx:DataGridColumn headerText="邮件" dataField="email"/>
35. </mx:columns>
36. </mx:DataGrid>
37. </s:Application>
2、通过代码动态调用:
1. <?xml version="1.0" encoding="utf-8"?>
2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
3. xmlns:s="library://ns.adobe.com/flex/spark"
4. xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768"
5. creationComplete="Init()">
6. <fx:Script>
7. <![CDATA[
8. import mx.controls.dataGridClasses.DataGridColumn;
9. import Common.YotuoUpload.CheckBoxColumn.CheckBoxColumn;
10. import Common.YotuoUpload.CheckBoxColumn.CheckBoxHeaderRenderer;
11. import Common.YotuoUpload.CheckBoxColumn.CheckBoxItemRenderer;
12. import mx.collections.ArrayCollection;
13.
14. public var dataArray:ArrayCollection = new ArrayCollection;
15.
16. private function Init():void{
17. dataArray.addItem({isSelected:false,name:'Christina Coenraets',phone:'555-219-2270',email:'ccoenraets@fictitious.com'});
18. dataArray.addItem({isSelected:false,name:'Joanne Wall',phone:'555-219-2012',email:'jwall@fictitious.com'});
19. dataArray.addItem({isSelected:false,name:'Maurice Smith',phone:'555-219-2012',email:'maurice@fictitious.com'});
20. dataArray.addItem({isSelected:false,name:'Mary Jones',phone:'555-219-2000',email:'mjones@fictitious.com'});
21. dataArray.addItem({isSelected:false,name:'God Win',phone:'555-219-2005',email:'godwin@fictitious.com'});
22.
23. var _checkBoxCloumn:CheckBoxColumn = new CheckBoxColumn();
24. _checkBoxCloumn.dataField = "isSelected";
25. _checkBoxCloumn.headerRenderer = new ClassFactory(CheckBoxHeaderRenderer);
26. _checkBoxCloumn.itemRenderer = new ClassFactory(CheckBoxItemRenderer);
27. _checkBoxCloumn.width = 30;
28. _checkBoxCloumn.sortable = false;
29. _checkBoxCloumn.draggable = false;
30.
31. var _nameColumn:DataGridColumn = new DataGridColumn();
32. _nameColumn.headerText = "姓名";
33. _nameColumn.dataField = "name";
34.
35. var _telColumn:DataGridColumn = new DataGridColumn();
36. _telColumn.headerText = "电话";
37. _telColumn.dataField = "phone";
38.
39. var _emailColumn:DataGridColumn = new DataGridColumn();
40. _emailColumn.headerText = "邮件";
41. _emailColumn.dataField = "email";
42.
43. dgUser.columns = new Array(_checkBoxCloumn,_nameColumn,_telColumn,_emailColumn);
44. dgUser.dataProvider = dataArray;
45. }
46. ]]>
47. </fx:Script>
48. <mx:DataGrid id="dgUser" x="10" y="10" width="450" height="200" />
49. </s:Application>
PS:该组件要求在数据源中存在属性isSelected(Boolean类型,用来记录当前行是否被选中)属性,这样就限制了程序的通用性,试了很多方法都未很好解决,希望有办法解决的朋友给以指点。
评论
1 楼
zhong_pro
2011-11-03
关于博主的问题点,做如下修改就可以达到不需要属性isSelected
文件CheckBoxItemRenderer.as
原this.selected = value.dgSelected 修改为
//获取DataGrid对象
var dg:DataGrid = DataGrid(listData.owner);
//获取整列的显示对象
var column:CheckBoxColumn = dg.columns[listData.columnIndex];
this.selected = value[column.dataField];
原修this.currentData.dgSelected = this.selected;改为:
this.currentData[column.dataField] = this.selected;
文件CheckBoxItemRenderer.as
原this.selected = value.dgSelected 修改为
//获取DataGrid对象
var dg:DataGrid = DataGrid(listData.owner);
//获取整列的显示对象
var column:CheckBoxColumn = dg.columns[listData.columnIndex];
this.selected = value[column.dataField];
原修this.currentData.dgSelected = this.selected;改为:
this.currentData[column.dataField] = this.selected;
发表评论
-
[转]构建Flex应用的10大误区
2011-05-31 23:29 748原文地址:http://www.infoq ... -
转:flex滤镜:聚光灯效果、放大镜效果、缩放模糊效果、浮雕效果和水波效果
2011-05-30 21:30 1751可惜提供的源代码没有相应的libs包 1:聚光灯效果: 实 ... -
Air File类使用方法
2010-09-06 10:24 2257air file 系统中文件或目 ... -
Flex air修改外部xml文件
2010-09-06 09:35 2103AIR的文件操作不难,看完教程应该可以满足你对文件的所有基本操 ... -
air 读取服务器端文件
2010-09-03 13:44 1021import flash.events.Event; ... -
air下载文件
2010-09-02 10:43 830http://www.code-design.cn/blogd ... -
三维程序/游戏制作基本常识
2010-08-25 13:19 909Furry/DDM君: 很多flash3d初 ... -
FLEX的RIA应用程序中配置文件(*-app.xml)的说明
2010-06-22 16:53 882<?xml version="1.0" ... -
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
2010-05-31 17:21 2124AIR教程 Adobe AIR右键菜单和系统托盘(Tray ... -
Flash Bulider4注册码生成器
2010-05-18 11:03 1820Flash Builder 4正式版发布,很高兴还有简体中文 ... -
FLex视图模式与视图转换
2010-05-10 14:13 18263.2 视图模式与视图转换 3.2.1 视图模式 Fle ... -
FusionCharts中文乱码问题
2010-05-06 11:17 2885从 http://www.infosoftglobal.com ... -
Flex ShareObject简单应用
2010-04-26 17:47 1064[size=medium]Share object一般用来保存 ... -
FLEX问题总汇(1)
2010-04-23 15:17 874论坛一直有些问题有人重复的发帖,今天有空就做了点总结,希望和大 ... -
Flex 开发: 类的反射
2010-04-23 10:34 1038Flex 反射简介 在很多时候反射为程序的动态性提供了一种可 ... -
Flex 3 体验:AdvancedDataGrid的使用(第一部分)
2010-04-22 17:14 1413今天我们要说的是官方文档中用了整章介绍的AdvancedDat ... -
FLEX alive pdf 打印pdf
2010-04-22 10:33 1945FLEX alive pdf 打印pdf ,废话不多说了,代码 ... -
FLEX AIR 连接local SQL database
2010-04-22 10:19 1314FLEX AIR 连接本地LocalSQL实现增删改查,废话不 ... -
将flex页面数据导出到excel
2010-04-20 10:07 1624本例实现将flex中的数据 ... -
FLEX TEXTINPUT restrict(正则表达式,约束,限定)
2010-04-19 16:28 2085通常要对输入TextInput中 ...
相关推荐
在Flex Datagrid中实现复选框功能,主要是通过添加一个自定义的列renderer来完成。Renderer是Datagrid中的一个小部件,负责渲染每一行或每一列的数据。对于复选框,我们可以创建一个CheckBox类的实例,然后将其设置...
总结起来,实现Flex Datagrid checkbox全选功能主要涉及自定义数据列、表头渲染器和行渲染器,通过事件监听和状态同步来达到全选的效果。在实际应用中,可能还需要处理部分选中、反选等复杂逻辑,但上述步骤提供了一...
在实际应用中,我们经常需要在DataGrid的每一行中添加复选框(checkBox),以便用户可以选择一行或多行数据进行操作。这个教程将详细解释如何在Flex的DataGrid中动态添加复选框,并通过一个名为`DataGridDemo`的示例...
在Flex开发中,数据网格(DataGrid)是用于展示数据集合的强大组件,它允许用户以表格形式查看和操作数据。本示例关注的是在DataGrid中嵌套复选框(Checkbox),并实现全选功能。这在需要用户批量选择或操作数据的...
### Flex中DataGrid某列显示值的自定义与字体颜色更改 #### 一、自定义DataGridColumn显示值 在Flex中,我们可以通过多种方式来定制DataGrid中的DataGridColumn的显示内容,例如更改显示的文本或者根据不同的条件...
### 在Flex的DataGrid中使用CheckBox #### 一、引言 在Flex应用程序开发中,DataGrid 是一种常用的UI组件,用于展示数据列表,并提供了一系列的功能,如排序、过滤等。有时,为了增加用户交互性或实现特定功能,...
在Flex编程中,DataGrid组件是用于展示数据集的...通过创建自定义列和渲染器,我们可以轻松地实现选中状态的管理,同时支持全选/全不选等高级功能。注意在实现这些功能时,同步数据模型和视图状态以及优化性能是关键。
综上所述,通过各种方式我们可以实现DataGrid的自定义列标题,包括文本、样式、交互性和动态调整列宽等特性,以满足不同场景下的需求。在实际项目中,根据具体业务逻辑和界面设计灵活运用这些方法,能够打造出更加...
通过自定义`CheckBoxColumn`、`CheckBoxHeader`和`CheckBoxRenderer`三个类,可以有效地在Flex的DataGrid中实现带有复选框列的功能,不仅增强了用户界面的交互性,也提供了更灵活的数据操作方式。这一实现充分展示了...
总之,Flex的DataGrid组件为我们提供了强大的数据展示功能,通过自定义列和事件处理,我们可以轻松地在其中嵌入复选框,实现数据的多选操作。这种技巧在许多数据交互丰富的应用程序中都十分常见。
通过以上步骤,我们就能够在Flex的DataGrid中添加了一个根据内容判断显示的按钮。这个过程涉及了组件定制、数据绑定、条件逻辑和事件处理等多个核心概念,对深入理解Flex的开发非常有帮助。在实际应用中,还可以...
4. **扩展功能**:如果需要添加额外的功能,如编辑时的验证、鼠标悬停效果等,可以在自定义类中添加相应的方法和事件处理。 5. **应用自定义列**:最后,在`DataGrid`控件中使用我们的自定义列类型。在数据绑定时,...
表头定义了 DataGrid 的列和列标题。在 MXML 中,使用 `<mx:columns>` 子标签和 `<mx:DataGridColumn>` 来定义列,比如: ```xml <mx:DataGrid id="DataGrid2" editable="true" width="300" y="30" right="10"> ...
要动态添加列,我们需要使用DataGridColumn对象。例如,如果我们要添加一个字符串类型的列,可以这样做: ```csharp DataGridTextColumn textColumn = new DataGridTextColumn(); textColumn.Header = "列名"; ...
4. **添加模板列到DataGrid** - 创建好`TemplateColumn`后,将其添加到`DataGrid`的`Columns`集合中。 - 通常在`Page_Load`事件处理程序中完成此操作,确保只在第一次加载页面时添加(避免在回发时重复添加)。 5...
根据给定的信息,本文将详细解释如何在Flex中实现DataGrid中的checkbox全选或取消功能。这涉及到Flex的checkbox管理、事件监听与处理、以及如何使用Cairngorm框架进行模型层更新等内容。 ### 一、理解Flex DataGrid...
综上所述,Flex 3中通过TitleWindow为DataGrid添加新数据的过程包括创建TitleWindow作为弹出对话框,设计表单获取用户输入,处理“添加”按钮的点击事件以将新数据添加到DataGrid的数据源,以及在主应用中触发...
在这个类中,我们可以重写或者添加方法来计算每列的总和,并将结果显示在Footer上。 2. `FooterDataGrid.as` - 这可能是一个定制的`DataGrid`类,包含了对Footer的特殊处理。在这个类中,可能会有代码用于集成...
在实际应用中,我们经常需要在DataGrid的列中添加复选框(Checkbox),以便用户能够进行多选操作,例如全选和单选。本文将深入探讨如何在Flex的DataGrid中使用复选框,并实现全选和单选功能。 首先,我们需要在...
在Flex4中,`DataGrid`的列可以通过动态创建来适应变化的数据结构,这在处理不确定列数或列类型的应用场景中非常有用。 在描述中提到,数据可能是数组类型,列名和列个数都是动态的。这意味着在运行时,我们需要...