我是学习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>
答案 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进行尝试,则会收到警告。