2015-01-16 24 views
-1

我是新來學習flex,我有這個應用程序打開彈出窗口顯示一些複選框的值,一旦用戶單擊確定按鈕填充數組,然後關閉。但在我的代碼中,當我點擊OK按鈕時,什麼都沒有發生。確定按鈕彈出對話框不工作在flex

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

看起來不錯。請顯示完整的代碼。你確定'table'dataProvider不爲空? –

+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試試吧,你會得到警告。

+0

我試圖刪除事件參數,但仍然沒有工作。但是,我用PopUpManager.removePopUp(this)將調用替換爲closeDialog();它工作正常。 –

相關問題