Flex selectedItem问题

时间:2011-02-15 17:23:54

标签: flex list drop-down-menu

我在flex中遇到了一些奇怪的东西,可能是我做错了 但我不确定。

在我注意到的两种情况中,当s:List或s:DropDownList中只有1个项目时 出于某种原因,当使用list.selectedItem时,它显示为null。使用requireSelection =“true” 我知道情况并非如此。

还有其他人见过类似的东西吗?还是我完全错了? 谢谢 乔恩

编辑:在下面的代码中,单击编辑文档时会发生这种情况,编辑文档会调用打开的编辑方法

------------添加了代码---------------------------

我删除了一小部分以使其更具可读性

<s:TitleWindow width="486" height="300" title="Document Store"
               xmlns:tmsbean="services.tmsbean.*"
               close="close()">
    <fx:Declarations>
        <s:CallResponder id="getAllAttachedDocumentsResult"/>
        <tmsbean:TMSBean id="tMSBean" showBusyCursor="true"/>
        <s:CallResponder id="removeDocumentLinkResult" result="getDocumentList()"/>
    </fx:Declarations>
    <fx:Script>
        <![CDATA[


        private static var documentStoreView:DocumentStoreView = null;
        [Bindable]
        private var attachedToMenomic:String;

        public static function getInstance():DocumentStoreView
        {
            if(documentStoreView == null){
                documentStoreView = new DocumentStoreView();
                DocumentForm.getInstance().addEventListener(DocumentFormEvent.DOCUMENT_ATTACHED,documentStoreView.getDocumentList);
            }
            return documentStoreView;
        }

        public function open(menomic:String,parent:DisplayObject):void
        {
            attachedToMenomic = menomic;
            getDocumentList();
            PopUpManager.addPopUp(documentStoreView,parent,true);
            PopUpManager.centerPopUp(documentStoreView);
            y = y - 80;
        }

        public function close():void
        {
            PopUpManager.removePopUp(documentStoreView);
        }

        private function getDocumentList(evt:DocumentFormEvent = null):void
        {
            getAllAttachedDocumentsResult.token = tMSBean.getAllAttachedDocuments(attachedToMenomic);
        }


        private function openEdit():void{
            var editDsi:DocumentStoreItem = documentList.selectedItem as DocumentStoreItem;
            Alert.show(editDsi.documentName);
            DocumentForm.getInstance().openInEditMode(editDsi,this);
        }

    ]]>
</fx:Script>

<s:VGroup left="10" top="10" right="10" bottom="10">
    <s:List width="100%"  height="100%" id="documentList" itemRenderer="com.documentStore.DocumentItemListRenderer" 
            dataProvider="{Utilitys.toArrayCollection(getAllAttachedDocumentsResult.token.result)}" />
    <s:HGroup horizontalAlign="right" width="100%">
        <s:Button label="Attach Document" click="{DocumentForm.getInstance().open(attachedToMenomic,this)}"/>
        <s:Button label="Edit Document" click="openEdit()"/>
    </s:HGroup>
</s:VGroup> 
</s:TitleWindow>

1 个答案:

答案 0 :(得分:2)

默认情况下,如果selectedIndex为-1,则Spark的DropDownList会显示prompt,如果requireSelection为false,则表示您未将列表设置为特定项目。这与selectedItem为空相对应。

Spark ComboBox做了类似的事情,但它有一个TextInput,你可以输入它。