![]() |
|
||||||||||
|
|||||
|
Использую кастомный итемрендерер для колонки в 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, время: 23:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|