Flex 高级表格MecGrid 使用方法 总结

 

网上能找到的资料非常少 能找到这里算不错了 使用2周MecGrid 郁闷14天 最终把项目搞定了.鉴于网上关于此的资源太少,把工作中的部分代码贴部分上来,一解各位痛苦.

 

一,下面截取的FocusManager很重要,MecGrid的API很烂,形同虚设.使用debug调试,加断点,能查到focusManger等很多属性,截取其中的一些,可以更改它运行时的操作.比如引用的最后焦点,在自己写自定义组件的时候,直接把自定义组件付给此焦点,可以更改MecGrid定义的组件太死问题,下面的例子是在栓剂事件中给TextInput组件加入数字校验,是通过这种方法.另外MecGrid中的组件很多没有id,也加不上,也可以用这种方法获取id或组件,来更改它的属性.

 

/**

* MecGrid 事件  双击 触发TextInput

* */

private function beginEditCellHandler(event:MecGridEvent):void

{

generate_btn.enabled = false;

save_btn.enabled = false;

if (event.target.CaretCol == 1){

//添加TextInput

mgrid.EditCell(event, CellOp.EDIT_TEXT);

// mgrid.focusManager.lastFocus.restrict="0-9"; //直接加加不上

}

//截取MecGrid的FocusManager获得最后一次焦点事件 是textinput 更改此组件  然后回传给FocusManager

var fM:FocusManager = mgrid.focusManager as FocusManager;

var textInpMgrid:TextInput = mgrid.focusManager.getFocus() as TextInput;

var tI:TextInput = textInpMgrid;

tI.restrict="0-9";

mgrid.focusManager.setFocus(tI);

}

 

 

二,MecGrid操作TextInput单元格

 

private function displayGridEvent(event:MecGridEvent):void{

//1, 获得MecGrid的行数 通过行数 设置orgId

if (event.target.CaretCol == 1){

mgrid.EditCell(event, CellOp.EDIT_TEXT);

}

//此行很重要,是在下一个一个属性试出来的,截获选中行的数据源值.

var orgId:Object = mgrid.get_cell(5,event.edit_rowIndex,2);

//2, 提取选择基础数据Id

var selectedBaseData:Object = baseDateGrid.selectedItem;

if(selectedBaseData == null)

{

return;

}

 

}

 

 

三,页面加载 初始化MecGrid的数据注释说明,其中一些属性可供参考

 

/**

* 加载MecGrid数据模块,其中初始化无数据,绑定的数据查询到了再生成

* */

private function loadDataProvider():void

{

mgrid.redraw = false;

// mgrid.merge_option = MecGridConst.MERGE_FIXED | MecGridConst.MERGE_PREV;

mgrid.merge_option = MecGridConst.MERGE_FIXED;  //合并单元格

// mgrid.spreadSheetStyle = true; //边框行列数

mgrid.SelectionMode = CellOp.SELECTIONMODE_ROW; // 设置选择行还是选择单元格

mgrid.editable = true; //设置表格编辑可用

mgrid.Rows.count = 0;

mgrid.Cols.count = 3;

mgrid.Cols.defaultwidth = 200;

//表头

mgrid.AddRow(0, "考核对象;基础数据项目值;;");

// mgrid.Rows.item(0).width = 60;

mgrid.Rows.fixed = 1;

mgrid.Rows.defaultwidth = 50;

//表数据

mgrid.Cols.item(0).dataField = "@orgName";

mgrid.Cols.item(0).width = 300;

mgrid.Cols.item(1).dataField = "@baseDataValue";

mgrid.Cols.item(1).width = 200;

mgrid.Cols.item(1).editable = true;

mgrid.Cols.item(2).dataField = "@orgId";

mgrid.Cols.item(2).visible = false;

mgrid.treeGridData = true;

mgrid.dataProvider = XML(CairngormModelLocator.getInstance().baseDataYearManageModel.orgXml);

mgrid.redraw = true;

}

 

 

 

.........

另有工作中的MecGrid图文调研报告,择日上传...

 

 

http://blog.csdn.net/redbull_250ml/article/details/6105784

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值