2011-01-26 20 views
6

選択したアイテムをコンボボックスにプログラム的に設定するための助けが必要です。フレックス:選択したアイテムをコンボボックスにプログラム的に設定する

私はこのようなコンボボックスを持っている:

<mx:ComboBox id="MyComboBox" change="puzzleHandler(event);" prompt="Make a Selection"> 
    <mx:ArrayCollection id="myDP"> 
     <mx:Object id="first" label="Label 1" series="2" pageTitle="Title 1"/> 
     <mx:Object id="second" label="Label 2" series="7" pageTitle="Title 2"/>           
     <mx:Object id="third" label="Label 3" series="9" pageTitle="Title 3"/>           
    </mx:ArrayCollection> 
</mx:ComboBox> 

私はディープリンクについて機能を持っています。誰かがwww.mysite.com/#view=2というURLに入れると、サイトの適切な部分に移動します(comboBoxのLabel 2は選択されません)。どのように私はそれを見ているユーザーに対応するように、プログラムでcomboBoxを設定するのですか?

私の関数のswitch文では、comboBoxをビューに対応するラベルに設定したいと思います。 "view = 2"の場合、comboBoxは "Label 2"を選択して表示する必要があります。

case "view=1": 
     MyComboBox.selectedItem.label="Label 1"; 
     parseUrl(); 

    case "view=2": 
     MyComboBox.selectedItem.label="Label 2"; 
     parseUrl(); 

    case "view=3": 
     MyComboBox.selectedItem.label="Label 3"; 
     parseUrl(); 

私はこれを試しました:MyComboBox.selectedItem.label = "Label 1"しかし動作しません。助言がありますか?

ありがとうございます。

-Laxmidi

答えて

8

selectedItemのオブジェクトを変更したくない場合。 selectedItemまたはselectedIndexを変更したいとします。あなたが代わりのselectedIndexののSelectedItemを設定したい場合は、ケース/ URL値に基づいて、実際のアイテムを見つけることのdataProviderをループする必要があります

case "view=1": 
    MyComboBox.selectedIndex=0; 
    parseUrl(); 

case "view=2": 
    MyComboBox.selectedIndex=1; 
    parseUrl(); 

case "view=3": 
    MyComboBox.selectedIndex=2; 
    parseUrl(); 

:これを試してみてください。このようなもの:

for each(var tempObject : Object in myList.dataProvider){ 
    if(tempObject.label == urlValue){ 
    MyComboBox.selectedItem = tempObject; 
    break; 
} 
} 

第2のアプローチは、より柔軟な長期的なものです。

+0

こんにちは、Flextras.com、あなたの助けよりも。私はオプション2と一緒に行きました。ありがとう! – Laxmidi

+0

@Laxmidi喜んで助けてください。これを正しい答えとして受け入れることを忘れないでください。 – JeffryHouser

+0

+1私は答えを受け入れることができないので: – zawhtut

関連する問題