2009-11-12 2 views
0

ComboBox의 하위 클래스 인 기존 구성 요소를 알고 있지만 selectedItem을 null로 설정할 "all"또는 "none"과 같은 레이블을 사용하여 목록의 항목을 지정할 수 있는지 궁금하십니까? 나는 하나를 쓰는 것으로 들여다 보았습니다. 그리고 구성 요소의 내부 때문에 많은 일처럼 보입니다. 그래서 누군가가 이미 그것을했는지 궁금합니다."Null"/ "All"옵션이있는 Flex ComboBox 하위 클래스?

+0

명확히하기 위해, 나는 정상으로 다시의 selectedItem = 널의 기본 상태로 돌아갈 수 있도록 콤보,하지만 여전히 기능을합니다. 나는 커스텀리스트를 만들어서 정상 콤보 박스에 보내고 싶지 않다. – Sophistifunk

답변

0

항목을 선택하지 않은 경우 ComboBox의 모양은 어떻게됩니까? 또는 해당 항목에 대해 선택된 모든 항목? ComboBox 대신 List을 사용해야하는 것 같습니다. Tour de Flex의 목록 컨트롤을보십시오.

+0

아무 것도 표시되지 않거나 프롬프트 필드의 내용을 처음 보았을 때와 동일하게 보입니다. – Sophistifunk

0

실행 이런 일에 대해 어떻게 :

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" creationComplete="onCreationComplete()"> 
    <mx:Script> 
     <![CDATA[ 
      private var myData:Array = new Array(); 

      [Bindable] 
      private var comboData:Array = new Array(); 

      [Bindable] 
      private var selectedData:String = ""; 

      private function onCreationComplete():void 
      { 
       myData.push({"label" : "First", "value" : "First"}); 
       myData.push({"label" : "Second", "value" : "Second"}); 
       myData.push({"label" : "Third", "value" : "Third"}); 

       comboData.push({"label" : "<None>", "value" : "<None>"}); 
       comboData.push({"label" : "<All>", "value" : "<All>"}); 
       for(var i:int = 0; i < myData.length; i++) { 
        comboData.push(myData[i]); 
       } 
      } 

      private function onSmartComboBoxChange():void 
      { 
       if(smartComboBox.selectedItem) { 
        if(smartComboBox.selectedItem.value == "<None>") { 
         selectedData = ""; 
        } else if(smartComboBox.selectedItem.value == "<All>") { 
         selectedData = ""; 
         for(var i:int = 0; i < myData.length; i++) { 
          selectedData += myData[i].value + ", "; 
         } 
        } else { 
         selectedData = comboData[smartComboBox.selectedIndex].value; 
        } 
       } 
      } 
     ]]> 
    </mx:Script> 
    <mx:VBox> 
     <mx:ComboBox id="smartComboBox" dataProvider="{comboData}" change="onSmartComboBoxChange()" labelField="label" /> 
     <mx:Label id="selectedDataLabel" text="{selectedData}" /> 
    </mx:VBox> 
</mx:Application>