对话框弹出窗口中的确定按钮无法在flex中工作

时间:2015-01-16 14:40:16

标签: actionscript-3 flex actionscript dialog popup

我是学习flex的新手,我有这个应用程序打开弹出窗口显示一些复选框值,一旦用户单击OK按钮填充数组然后关闭。但在我的代码中,当我单击“确定”按钮时没有任何反应。

 private function closeDialog(event : CloseEvent) : void {
        PopUpManager.removePopUp(this); // close this dialog
    }

    private function onClickOK (event : CloseEvent) : void {
           var values:ArrayCollection = new ArrayCollection();
        for (i = 0; i < table.length; i++) {
            var row:Array = table.getItemAt(i);
            if (row["selected"]) {
                var valueRow:Array = new Array();
                arrayRow["colA"] = row["colA"];
                values.addItem(valueRow);
            }
        }

        page.model["choosenvalues"] = values;

        closeDialog(event);
    }

这是flex代码

   <mx:VBox paddingLeft="10" paddingRight="10">
    <mx:HBox width="100%" height="100%">
        <mx:Spacer width="2%" />
        <mp:Table id="selectTable" dataProvider="{table}" title="" height="350">
            <mp:columns>
                <mx:AdvancedDataGridColumn dataField="selected" headerText="  "  editable="true" textAlign="center" minWidth="36" width="36" paddingLeft="0" paddingRight="0">
                    <mx:itemRenderer>
                        <mx:Component>
                            <mx:CheckBox width="18" click="{data.selected = !data.selected}" label="" paddingLeft="0" paddingRight="0"/>
                        </mx:Component>
                    </mx:itemRenderer>
                </mx:AdvancedDataGridColumn>
                <mx:AdvancedDataGridColumn headerText="Column A" minWidth="240" dataField="colA"/>

            </mp:columns>
        </mp:Table>
    </mx:HBox>
    <mx:HBox width="100%">
        <mx:Spacer width="85%" />
        <mx:Button label="OK" click="onClickOK(null)" enabled="true"/>
        <mx:Button label="Cancel" click="closeDialog(null)"/>
    </mx:HBox>
</mx:VBox>

1 个答案:

答案 0 :(得分:0)

尝试从方法中删除事件参数,因为您不能使用它们。无论如何, onclick 处理程序应该接受 MouseEvent 或仅事件,而不是 CloseEvent

private function closeDialog() : void {
    PopUpManager.removePopUp(this); // close this dialog
}

private function onClickOK () : void {
       ...

    closeDialog();
}

MXML:

<mx:Button label="OK" click="onClickOK()" enabled="true"/>
<mx:Button label="Cancel" click="closeDialog()"/>

注意:MXML可以使用无参数事件处理程序,因为如果您使用AS进行尝试,则会收到警告。