以下的例子显示了如何用Flex中Array data provider的Repeater来显示一系列的CheckBox控件。
|
<?xml version="1.0" encoding="utf-8"?> <!-- http://blog.flexexamples.com/2008/05/29/displaying-checkbox-controls-using-the-repeater-in-flex/ --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white">
<mx:Script> <![CDATA[ import mx.controls.Alert; import mx.controls.CheckBox;
private function button_click(evt:Event):void { var selArr:Array = []; var idx:int; var len:int = arr.length; for (idx=0; idx<len; idx++) { if (checkBox[idx].selected) { selArr.push(checkBox[idx].label); } }
var title:String = selArr.length + " of " + len + " item(s) selected."; var message:String = selArr.join("\n"); Alert.show(message, title); }
private function doFilter(element:*, index:int, arr:Array):Boolean { return element.selected; }
private function checkBox_change(evt:Event):void { var ch:CheckBox = evt.currentTarget as CheckBox; Alert.show(ch.getRepeaterItem().data); } ]]>
</mx:Script>
<mx:Array id="arr"> <mx:Object label="Red" data="red" /> <mx:Object label="Orange" data="haloOrange" /> <mx:Object label="Yellow" data="yellow" /> <mx:Object label="Green" data="haloGreen" /> <mx:Object label="Blue" data="haloBlue" /> </mx:Array>
<mx:Panel id="panel" width="50%" paddingLeft="10" verticalGap="10"> <mx:Repeater id="checkBoxRepeater" dataProvider="{arr}"> <mx:CheckBox id="checkBox" label="{checkBoxRepeater.currentItem.label}" data="{checkBoxRepeater.currentItem.data}" change="checkBox_change(event);" /> </mx:Repeater> <mx:ControlBar horizontalAlign="right"> <mx:Button id="button" label="Click me" emphasized="true" click="button_click(event);" /> </mx:ControlBar> </mx:Panel>
</mx:Application>
|
查看Demo演示