2011-07-19 180 views
2

下面是我的問題的圖像: 我正在使用組合框作爲Datagrid ItemEditor(不只是渲染器,我的渲染器是標籤,雙擊單元格使組合框可見,情​​況也是如此與所有項目編輯器)Flex:ItemEditor失去焦點!

現在,在組合框中選擇一個條目是沒有問題的。但我的問題是,只有當我選擇「果」,而這又彈開稱爲另一層「選擇果」對話框

問題:

如何保持項目編輯器,而重點是在層上;現在,只要我點擊水果,我的處理程序彈出「選擇水果」對話框,焦點在圖層上。一旦焦點離開編輯器,ItemEditor消失並返回ItemRenderer標籤。

我想保持ItemEditor活着!我應該在哪裏連接諸如開始/結束ItemEdit等事件?

Flex: Item editor, losing focus!

+1

我們可以看到一些代碼嗎?我可能只是用一個自定義的編輯器創建一個項目渲染器,而不是使用內置的項目編輯器,那麼你完全可以控制顯示的內容和時間(毫無疑問,你將在那裏放置一些聰明的狀態);) – Nate

回答

1

您可以通過偵聽DataGridEvent.ITEM_EDIT_END保持你的itemEditor活着。然後你有更多的控制權去做你想做的事情。有些FYI從我的博客:

DataGridEvent.ITEM_EDIT_END - 基於列表控件的默認事件偵聽器將

1)使用.editorDataFrield屬性deterine的財產 - 當焦點從細胞中移除 調度項目編輯器來存儲編輯的數據;在默認的TextInput控件的項目編輯器中,「text」屬性將包含新數據。

2)調用destoryItemEditor()根據事件

  • 您可以通過使用event.preventDefault()中斷基於列表默認控件的默認事件偵聽器的原因

一)修改物品編輯器返回的數據

b)檢查/驗證輸入到物品編輯器的數據;如果數據不正確,你可以停止的Flex傳遞數據從項目編輯器返回到基於列表的控件

http://knowledge.lapasa.net/?p=153

0

嘗試失去你的itemEditor的焦點。 Goto Combo Box Change Listener

protected function comboBox_changeHandler(event:ListEvent):void 
{ 
// set focus out event on datagrid. Its like clicking outside the datagrid 
event.target.parent.parent.parent.dispatchEvent(new FocusEvent(FocusEvent.FOCUS_OUT); 

}