|
|
|||||
CheckBox в DataGrid
Использую кастомный итемрендерер для колонки в DataGrid-е RendererDGCheckBox.mxml :
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="40" implements="mx.controls.listClasses.IDropInListItemRenderer"> <mx:CheckBox verticalCenter="0" horizontalCenter="0" scaleX="2" scaleY="2" selected="{data[DataGridListData(listData).dataField]=='true' ? true:false}"/> <mx:Script> <![CDATA[ import mx.controls.listClasses.BaseListData; import mx.controls.DataGrid; import mx.controls.Alert; import mx.controls.dataGridClasses.DataGridListData; private var _listData:BaseListData = null; [Bindable(event="dataChange")] public function get listData():BaseListData { return _listData; } public function set listData (value:BaseListData):void { _listData = value; } ]]> </mx:Script> </mx:Canvas>
__________________
2+2=5 |
|
|||||
Регистрация: Sep 2007
Сообщений: 32
|
Для этих целей рекомендую всегда переопределять свойство data
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%"> <mx:Script> <![CDATA[ override public function set data(value: Object): void { if(value != null) { super.data = value; checkBox.selected = value.checked; } } private function onChange(event: Event): void { super.data.checked = checkBox.selected; } ]]> </mx:Script> <mx:CheckBox id="checkBox" change="onChange(event)"/> </mx:Canvas> Последний раз редактировалось sangle; 15.10.2008 в 17:54. Причина: Добавление комментария в ответе автору. |
|
|||||
Регистрация: Sep 2007
Сообщений: 32
|
Если же тебе нужно более универсальное решение (в отличие от предыдущего решения, где было известно, что значение хранится в свойстве checked), то вот расширенный пример.
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.controls.listClasses.IDropInListItemRenderer"> <mx:Script> <![CDATA[ import mx.controls.dataGridClasses.DataGridListData; import mx.controls.listClasses.BaseListData; override public function set data(value: Object): void { if(value != null) { super.data = value; var fieldName: String = DataGridListData(listData).dataField; checkBox.selected = value[fieldName]; } } private var _listData:BaseListData = null; [Bindable(event="dataChange")] public function get listData():BaseListData { return _listData; } public function set listData (value:BaseListData):void { _listData = value; } private function onChange(event: Event): void { var fieldName: String = DataGridListData(listData).dataField; super.data[fieldName] = checkBox.selected; } ]]> </mx:Script> <mx:CheckBox id="checkBox" change="onChange(event)"/> </mx:Canvas> |
|
|||||
Спасиб. Второе то что нужно. Единственно пришлось заменить
на
т.к. в XMLList нет типизации.
__________________
2+2=5 |
|
|||||
Регистрация: Sep 2007
Сообщений: 32
|
А так не читабельнее?
А вообще бы я использовал значения 0 и 1. Это очень удобно при передаче данных и позволяет не зависеть от коллекции и способах ее наполнения при передаче данных от внешних источников. |
Часовой пояс GMT +4, время: 15:44. |
|
« Предыдущая тема | Следующая тема » |
|
|