如
<mx:DataGrid id="dgList"
x="10"
y="39"
dataProvider="{data11}"
width="557"
height="185">
<mx:columns>
<mx:DataGridColumn headerText="选择"
dataField="selected"
itemRenderer="MyControl.SelectBox"/>
<mx:DataGridColumn headerText="ID"
dataField="ID"/>
<mx:DataGridColumn headerText="Text"
dataField="Text"
itemRenderer="{new ClassFactory(mx.controls.Label)}"/>
</mx:columns>
</mx:DataGrid>
SelectBox.as
package MyControl
{
import flash.events.Event;
import mx.core.Application;
import mx.controls.CheckBox;
import mx.controls.DataGrid;
public class SelectBox extends CheckBox
{
public function SelectBox()
{
super();
}
override public function initialize():void
{
super.initialize();
this.addEventListener(Event.CHANGE, OnChange);
}
private function OnChange(evn:Event):void
{
super.data.selected=this.selected;
this.label=this.selected ? "已选" : "未选";
}
[Bindable]
override public function set data(value:Object):void
{
if (value == super.data)
return;
super.data=value;
if (value == null)
return;
this.Refresh();
}
override public function get data():Object
{
return super.data;
}
public function Refresh():void
{
this.selected=(super.data.selected == "true");
this.label=this.selected ? "已选" : "未选";
}
}
}
访问当前选中的 itemRenderer 对应的 SelectBox 的属性
SelectBox(dgList.indexToItemRenderer(dgList.selectedIndex)).Refresh();
本文介绍如何在 Flex 应用中使用 mx:DataGrid 控件并自定义 itemRenderer 为 SelectBox 类,实现对表格中选择状态的动态显示与更新。通过绑定事件和属性,确保了用户交互的一致性和数据的准确性。

4812

被折叠的 条评论
为什么被折叠?



