[英]Weird Behaviour-CheckBoxes as ItemRenderer within Flex DataGrid - FLEX 3
我在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>
好吧,發生的事情是,每當我選中一個復選框時,其他復選框(在其他行中)都會被隨機選中或取消選中,並且如果我向下或向上滾動,它們將再次被隨機選中或取消選中。
有人可以幫我嗎?
謝謝提前
順便說一句,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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.