簡體   English   中英

Flex DataGrid中奇怪的行為-復選框作為ItemRenderer-FLEX 3

[英]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以獲得更好的內存性能。 什么是可能發生的事情是,你檢查CheckBoxitemRenderer並開始滾動,即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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM