连接ToggleButtonBar,combobox和datagrid

时间:2013-01-30 06:46:21

标签: actionscript-3 datagrid combobox flash-builder togglebutton

我想把这3个连在一起。当您从togglebutton栏中选择时,它将显示在组合框中,您可以从中选择将在数据网格中显示的其他数据。

现在我连接了前两个:

private function toggle(event:ItemClickEvent):void{

                list2.selectedIndex=-1; // reset so prompt shows
                if (togglebtn.selectedIndex==0)
                list2.dataProvider=elecItems;
                else if(togglebtn.selectedIndex==1)
                list2.dataProvider=toyItems;

            }

<mx:ToggleButtonBar id="togglebtn" x="9" y="29" color="0x323232" dataProvider="{dp}" horizontalGap="4" itemClick="toggle(event)"/>

<s:ComboBox id="list2" x="159" y="28" width="549" itemClick="select_item(event)"/>

现在我想将组合框与数据网格连接起来,但是当我使用:

if (list2.selectedIndex==0)
info_dg.dataProvider={info};

它指向两个索引......无论如何,我自己并不了解它并希望得到一些帮助。

也可以使用ID而不是使用SelectedIndex == 0?

数据结构: ToggleButtonBar

[Bindable]public var dp:ArrayCollection = new ArrayCollection([
            {label:"商品", data:399}, 
            {label:"顧客", data:599}]);

组合框

[Bindable]public var elecItems:ArrayCollection = new ArrayCollection([
                {label:"text", data:299}, 
                {label:"tttナビ", data:999}, 
                {label:"大学院ttt", data:999}, 
                {label:"ttt", data:999}, 
                {label:"ttt制作", data:899},
                {label:"tttt", data:899}]);


            [Bindable]public var toyItems:ArrayCollection = new ArrayCollection([
                {label:"text", data:120}, 
                {label:"text", data:50}, 
                {label:"text", data:50},
                {label:"(株)text", data:30} ]);

Datagrid XML文件:

<fx:XMLList id="Info">
            <employee>
                <name>eeee/完了</name>
                <phone>eee</phone>
                <email>eee制作</email>
                <active>300,000</active>
                <image>eeee</image>
            </employee>
            <employee>
                <name>rrr/完了</name>
                <phone>rrr</phone>
                <email>rrr設営</email>
                <active>1,900,000</active>
                <image>rrrしないように</image>
            </employee>
        </fx:XMLList>

1 个答案:

答案 0 :(得分:0)

我有这样的结构来保存关于员工的信息

<fx:XMLList id="info">
        <toggle>
            <group>
                <employee>
                    <name>ei1_name1</name>
                    <phone>phone1</phone>
                </employee>
                <employee>
                    <name>ei1_name2</name>
                    <phone>phone2</phone>
                </employee>
            </group>
            <group>
                <employee>
                    <name>ei2_name1</name>
                    <phone>phone1</phone>
                </employee>
                <employee>
                    <name>ei2_name2</name>
                    <phone>phone2</phone>
                </employee>
            </group>
        </toggle>

        <toggle>
            <group>
                <employee>
                    <name>ti1_name1</name>
                    <phone>phone1</phone>
                </employee>
                <employee>
                    <name>ti1_name2</name>
                    <phone>phone2</phone>
                </employee>
            </group>
            <group>
                <employee>
                    <name>ti2_name1</name>
                    <phone>phone1</phone>
                </employee>
                <employee>
                    <name>ti2_name2</name>
                    <phone>phone2</phone>
                </employee>
            </group>
        </toggle>

    </fx:XMLList>

有两个切换块可以区分“玩具”和“电子”。 每个块都有许多“组”项 - 每个项都用于CheckBox中的相应项。

如果没问题,那么你不应该使用任何“if else”。而不是它你的功能看起来像

        private function onCbChanged(evt:IndexChangeEvent):void
        {
            info_dg.dataProvider = info[togglebtn.selectedIndex].group[list2.selectedIndex].employee;
        }

“togglebtn.selectedIndex”选择一个切换块,“list2.selectedIndex”选择一组切换。