Fel*_*ida 1 apache-flex datagrid mxml flex3 itemrenderer
我在datagridColumn中有这种奇怪的行为,我已经将其定制为将其单元格呈现为checkBoxes而不是dafault itemRenderer(即字符串).相关代码如下:
<mx:DataGridColumn sortable="false" textAlign="center" headerText="" width="20" dataField="colCB">
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selected="true">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function change():void{
//TODO
}
]]>
</mx:Script>
</mx:CheckBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
Run Code Online (Sandbox Code Playgroud)
嗯,每当我选中一个复选框时,其他复选框(在其他行中)会被随机选中或取消选中,如果我向下或向上滚动它们会再次随机选中或取消选中.
有人可以帮我这个吗?
谢谢你的提前
PS顺便说一句,我已经抑制了标签中的起始"<",因为它正在弄乱textEditor,但在我的代码中它们在那里
我的猜测是问题不是复选框被随机检查和取消选中.将DataGrid
回收其itemRenderers
获得更好的内存性能.什么是可能发生的事情是,你检查CheckBox
上itemRenderer
,并开始滚动,这itemRenderer
与选中的框是越来越重用与显示其他记录selected="true
仍然设置"值.
我要做的是创建一个itemRenderer组件并覆盖该set data
方法,将复选框的选定值设置为它应该是什么.
一些示例代码在我的头顶为itemRenderer(您将需要调整它以供您使用):
<mx:HBox horizontalScrollPolicy="off" verticalScrollPolicy="off">
<fx:Script>
<![CDATA[
override public function set data(value:Object):void
{
super.data = value;
if (value["myCheckBoxData"] != null)
{
myCheckBox.selected = Boolean(value["myCheckBoxData"]);
}
validateDisplayList();
}
]]>
</fx:Script>
<mx:CheckBox id="myCheckBox" />
</mx:HBox>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3770 次 |
最近记录: |