簡體   English   中英

在彈性樹項目渲染器中彈出

[英]Pop up in flex tree item renderer

我有一個帶有TreeItemRenderer的mx:tree,如下所示。

Parent1(刪除|重命名)
兒童1
兒童2
Parent2(刪除|重命名)
兒童3
兒童4

刪除和重命名是鏈接按鈕

現在,當我單擊“重命名”時,將顯示如下所示的彈出窗口

    OldName       : Parent1(Text Input showning present Name)
    Enter New Name: Parent1NewName(Text Input for entering New name) 

         OK | CANCEL Buttons 

Afetr輸入新名稱,單擊OK,應關閉彈出窗口,並需要在treeItemRenderer中獲取值。

我可以在TreeItemRenderer中重命名Parent1的邏輯,也可以在彈出的OldName TextInput中獲取Parent1。但是輸入新名稱后,我無法在TreeItemRenderer中獲得該新名稱。請幫幫我

提前致謝:)

您有兩種方法可以實現目標:

1)將當前XML節點而不是純標簽傳遞給對話框(如當前實現中那樣)。 當用戶按Ok時,只需將XML中的舊標簽替換為新標簽,如以下示例代碼所示:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
        [Bindable]
        private var rawData:XML = <tree><parent label="Parent1"><child label="Child1"/><child label="Child2"/></parent>
                <parent label="Parent2"><child label="Child3"/><child label="Child4"/></parent></tree>;

        private function displayLabel(node:XML):String
        {
            return node.@label;
        }
    ]]>
    </mx:Script>
    <mx:VBox horizontalCenter="0" verticalCenter="0">
        <mx:Tree dataProvider="{rawData}" height="300" id="tree" labelFunction="displayLabel" showRoot="false"
            width="300" />
        <mx:HBox enabled="{tree.selectedItem}">
            <mx:TextInput id="labelEdit" text="{tree.selectedItem ? tree.selectedItem.@label : ''}" />
            <mx:Button click="tree.selectedItem.@label = labelEdit.text" label="Apply" />
        </mx:HBox>
    </mx:VBox>
</mx:Application>

2)創建帶有label字段, "labelSubmit""labelCancel"事件的自定義事件類,並從對話框中通過"labelSubmit"事件傳遞新標簽值來觸發它。 並在對話框的事件處理程序中將新標簽設置為XML節點(如上所述)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM