Flex DataGrid中使用CheckBox[转]
本文使用DataGrid的headerRenderer和itemRenderer,设计一个的DataGrid+Checkbox的组件,且包括了表头多选支持。
?
[主程序源码(application.mxml source code)]:
?
[CheckBoxDataGrid.as源码]:
package {import flash.display.DisplayObject;import flash.events.Event;import flash.events.KeyboardEvent;import flash.events.MouseEvent;import flash.text.TextField;import mx.controls.CheckBox;import mx.controls.dataGridClasses.DataGridListData;import mx.controls.listClasses.ListBase; /** * The Renderer. */public class CheckBoxHeaderRenderer extends CheckBox{ public function CheckBoxHeaderRenderer(){focusEnabled = false;} override public function set data(value:Object):void{invalidateProperties();} private var addedListener:Boolean = false; private var partiallySelected:Boolean = false; override protected function commitProperties():void{super.commitProperties();if (owner is ListBase) { if (!addedListener) { addedListener = true; owner.addEventListener("valueCommit", owner_changeHandler, false, 0, true); owner.addEventListener("change", owner_changeHandler, false, 0, true); } if (ListBase(owner).dataProvider.length == ListBase(owner).selectedItems.length) { selected = true; partiallySelected = false; } else if (ListBase(owner).selectetemRenderder如何获得rowIndex或columnIndex">DataGrid中的ItemRende c.alpha = 1; if (partiallySelected) { graphics.beginFill(0x000000); graphics.drawRect(c.x, c.y, c.width, c.height); graphics.endFill(); c.alpha = 0.7; }}}}} private function owner_changeHandler(event:Event):void { invalidateProperties(); } } }??
本文转自:http://www.myflexhero.com/share/flex3-mx/flex-mx-core-components/flex-mx-ui-controls/flex-mx-tree-and-datagrid-controls/604
?
?
?