Flex Gumbo中如何通过selectionChanging事件和preventDefault()函数阻止用户选定DropDownList特定项目的例子

By Minidxer | August 11, 2009

接下来的Flex Gumbo中如何通过监听selectionChanging事件和调用preventDefault()函数,阻止用户选定DropDownList特定项目。



下面是main.mxml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:Application name="DropDownList_selectionChanging_test"
  3.         xmlns:fx="http://ns.adobe.com/mxml/2009"
  4.         xmlns:s="library://ns.adobe.com/flex/spark"
  5.         xmlns="library://ns.adobe.com/flex/halo">
  6.  
  7.     <fx:Script>
  8.         <![CDATA[
  9.             import mx.controls.Alert;
  10.             import mx.events.IndexChangedEvent;
  11.  
  12.             private function dropDownList_selectionChanging(evt:IndexChangedEvent):void {
  13.                 var ddl:DropDownList = evt.currentTarget as DropDownList;
  14.                 if (ddl.selectedItem != null && ddl.selectedItem.hasOwnProperty("selectable") && !ddl.selectedItem.selectable) {
  15.                     evt.stopImmediatePropagation();
  16.                     evt.preventDefault();
  17.                 }
  18.             }
  19.  
  20.             private function dropDownList_selectionChanged(evt:IndexChangedEvent):void {
  21.                 Alert.show("Spark DropDownList selection was changed.");
  22.             }
  23.         ]]>
  24.     </fx:Script>
  25.  
  26.     <s:DropDownList id="dropDownList"
  27.             labelField="label"
  28.             prompt="Please select a string..."
  29.             selectionChanging="dropDownList_selectionChanging(event);"
  30.             selectionChanged="dropDownList_selectionChanged(event);"
  31.             width="200"
  32.             horizontalCenter="0"
  33.             top="10">
  34.         <s:dataProvider>
  35.             <s:ArrayList>
  36.                 <fx:Object label="The" selectable="false" />
  37.                 <fx:Object label="  Quick" />
  38.                 <fx:Object label="  Brown" />
  39.                 <fx:Object label="  Fox" />
  40.                 <fx:Object label="  Jumps" />
  41.                 <fx:Object label="  Over" />
  42.                 <fx:Object label="The" selectable="false" />
  43.                 <fx:Object label="  Lazy" />
  44.                 <fx:Object label="  Dog" />
  45.             </s:ArrayList>
  46.         </s:dataProvider>
  47.     </s:DropDownList>
  48.  
  49. </s:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: DropDownList, Gumbo | No Comments » | Tags: , , ,

Search Posts