2011-12-20 33 views
2

私は自分のアプリケーションに編集可能なコンボボックスを使用しています。コンボボックスのデフォルト動作はフレックス編集可能なコンボボックス

です。コンボボックスのデータプロバイダ値と似ていないテキストを入力すると、デフォルトでコンボボックスが最初のデータプロバイダ値を選択し、ドロップダウンウィンドウを閉じます。私はこのデフォルトの動作を止めたい。

Ex。私はdataproviderの値でコンボボックスを持っています。 (stack、stackoverflow、stackoverflow A) 私はドロップダウンを開いて、 "stackoverflow A"の値がドロップダウンにあるのを見てください。今度は値 "stackoverflow B"を入力しますが、この値はドロップダウンに表示されませんので、入力するとコンボボックスが入力したテキストを上書きし、 "stackoverflow B"をdataprovider(dropdown)の最初の値 "stack"に置き換えてselectedindex changeイベントを発生させます。私はデフォルトで最初の値の選択のコンボボックスのデフォルトの動作を停止し、入力された値を探したいと思います。

私はselectedindexをデフォルトで-1にしようとしましたが、デフォルトでは最初の値を取っています。何か回避策や提案が役立つでしょう。私は、これはつもりあなたに参考になると思います

おかげ

+0

私は何が起こっているか、あなたが何をしたいかを完全に理解していません。私はこの問題のビデオ画面のキャプチャが大いに役立つと思う。 – JeffryHouser

+0

私はスクリーンショットを置くことができませんが、私は再びそれを説明しようとしました。 – TrexTroy

+0

それははるかに良い説明します。コードを掘り下げて拡張する必要があると思います。このようなことに対処する財産はないように見えるからです。 – JeffryHouser

答えて

0

...ここ

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" horizontalAlign="center" 
verticalAlign="middle" height="100%" width="100%"> 

<mx:Script> 
    <![CDATA[ 
     public var arr:Array = new Array({isSelected:true,label:'ABC',score:'78',name:'ABC'}, 
             {isSelected:true,label:'DEF',score:'50',name:'DEF'}, 
             {isSelected:false,label:'GHI',score:'70',name:'GHI'}, 
             {isSelected:false,label:'JKL',score:'80',name:'JKL'}, 
             {isSelected:true,label:'TRE',score:'50',name:'MNO'}); 

     public function dgCLG_dataChange():void 
     { 

     } 

     public function dgCLG_change():void 
     { 

     } 

     public function btnSubmit_click():void 
     { 
      dgCopy.dataProvider = dgCLG.dataProvider; 
     } 

    ]]> 
</mx:Script> 

<mx:VBox height="100%" width="100%" horizontalAlign="center" verticalAlign="middle"> 
    <mx:DataGrid id="dgCLG" dataProvider="{arr}" editable="true" dataChange="{dgCLG_dataChange();}" change="{dgCLG_change();}"> 
     <mx:columns> 
      <mx:DataGridColumn headerText="" dataField="isSelected"> 
       <mx:itemRenderer> 
        <mx:Component> 
         <mx:Box horizontalAlign="center" verticalAlign="middle" height="100%" width="100%"> 
          <mx:Script> 
           <![CDATA[ 
            override public function set data(value:Object):void 
            { 
             if(value != null) 
             { 
              super.data = value; 
              var temp:Object = value as Object; 
              chb.selected = temp.isSelected; 
             } 
            } 
           ]]> 
          </mx:Script> 
          <mx:CheckBox id="chb"/> 
         </mx:Box> 
        </mx:Component>      
       </mx:itemRenderer> 
      </mx:DataGridColumn> 
      <mx:DataGridColumn headerText="Label" dataField="label" editable="false"> 

      </mx:DataGridColumn> 
      <mx:DataGridColumn dataField="name" headerText="Person" itemEditor="ComCB" editorDataField="value" editable="true"> 

      </mx:DataGridColumn> 
     </mx:columns> 
    </mx:DataGrid> 

    <mx:Button id="btnSubmit" label="Click" click="{btnSubmit_click();}" /> 

    <mx:DataGrid id="dgCopy" editable="false"> 
     <mx:columns> 
      <mx:DataGridColumn headerText="CopyLabel" dataField="label" /> 
      <mx:DataGridColumn headerText="CopyMarks" dataField="score" /> 
      <mx:DataGridColumn headerText="CopyPerson" dataField="name" /> 
     </mx:columns> 
    </mx:DataGrid> 
</mx:VBox> 

</mx:Application> 

がComCbコンポーネントです。

<?xml version="1.0" encoding="utf-8"?> 
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml" dataProvider="{arr}" selectedIndex="1" creationComplete="{c_complete();}" > 
<mx:Script> 
    <![CDATA[ 
     public var arr:Array = new Array({label:'ABC'},{label:'DEF'},{label:'GHI'},{label:'JKL'},{label:'MNO'},{label:'XXX'}) 

     public function c_complete():void 
     { 
      for(var i:int = 0; i < arr.length; i++) 
      { 
       if(arr[i].label == parentDocument.dgCLG.selectedItem.name) 
       { 
        this.selectedItem = arr[i]; 
       } 
      } 
     } 
    ]]> 
</mx:Script> 
</mx:ComboBox> 

が、これは参考になりましつもりだろうかもしれません...

NICE Dの@ yを持っている.......

0

< sの代替があります:コンボボックス>は、上記のようにテキストをデータプロバイダの値と一致させようとせず、this bugがありません。これはActionScript、Flex、スパークのみのコンボボックスで、open sourceとして利用できます。

関連する問題