2011年12月22日 星期四

【Flex】outerDocument 介紹

在 Flex 的程式中可以透過 outerDocumet 來呼叫複葉面所宣告的方法或變數

以下用一個 DataGrid 的範例,其中有一個 DataGridColumn 中會運用一個 itemRenderer

並表示一個 CheckBox 元件 如下所示


<mx:DataGridColumn dataField="gift_id" headerText="選擇" textAlign="center">
    <mx:itemRenderer>
        <mx:Component>
            <mx:HBox>
                <mx:CheckBox />
            </mx:HBox>
        </mx:Component>
    </mx:itemRenderer>
</mx:DataGridColumn>


這時候 CheckBox 這個原件所存在的 Component 就並非 DataGrid 元件的Component

如果要做到當 CheckBox 被選擇時,要將被選擇的物件加入到一個集合(ArrayCollection)

就可以稍為運用一下 outerDocument,如下所示:

<mx:CheckBox click="outerDocument.handleClick(event);"/>

這時候父頁面就需要提供一個 handleClick 的 function


public function handleClick(event:Event):void
{

    if(event.target.selected == true){
        selGiftTemp.addItem(dg.selectedItem);
    }else{
        var index:int = selGiftTemp.getItemIndex(dg.selectedItem);
        selGiftTemp.removeItemAt(index);
    }
}

沒有留言:

張貼留言