簡體   English   中英

Flex組件沒有刷新

[英]Flex Components are not getting refreshed

嗨,我們在UI端的項目中使用了Flex 4。 加載應用程序儀表板時,我們獲得了一組Pod。 我們單擊一個窗格,然后將打開窗格視圖。 此窗格視圖包含datagrid,第一列為超鏈接。 當您單擊超鏈接時,將打開另一個屏幕,這是我們的模塊屏幕。

該模塊屏幕的頂部有一個SUBMIT按鈕和幾個數據網格。 現在,我們使用RemoteObject將數據加載到網格中。 每個網格的父容器是一個WindowShade組件。

現在,我們的要求是用戶可以在一個或兩個網格中進行修改,然后單擊“提交”。 根據用戶已修改的網格,我想將相應的窗口陰影設為只讀。 如果用戶同時修改了兩個網格,則需要將兩個“ Window Shade”組件都設置為只讀,並禁用“ SUBMIT”按鈕。 用戶應該能夠在單擊“提交”時立即看到此更改,而無需關閉屏幕或離開屏幕。

當用戶第一次打開屏幕時,我們會從后端獲取一些狀態,然后根據這些狀態,我將“窗口陰影”設置為只讀並啟用/禁用按鈕。 當我單擊“提交”時,我仍然點擊后端並獲得狀態,但是沒有啟用/禁用按鈕或窗簾。

我已經在為之創建swf的mxml文件的updateComplete方法中編寫了啟用/禁用邏輯。

用戶第一次打開屏幕時會調用updateComplete,而用戶單擊SUBMIT時不會調用它。 為什么會這樣呢?

我嘗試使用Loader和SWFLoader如下加載我的SWF文件,但它也不起作用。 var request:URLRequest = new URLRequest(“ com / citi / risk / credit / maintenance / view / widgets / CRCMaintenanceModule.swf”); var loader:Loader = new Loader(); loader.load(請求);

任何幫助或指針將不勝感激。

您可能要考慮兩件事:

1)簡而言之, FlexEvent.UPDATE_COMPLETE是一個已調度的事件,它自身已完成呈現(通過Flex組件生命周期進行)。 這可能發生一次或多次,具體取決於組件更改的頻率及其狀態需要重新呈現。

此事件的頻率/定時將根據調度該事件的對象而有所不同。 例如,正在調整大小的容器將分派大量時間。 永遠不變的標簽只能做一次。

相反,您應該考慮添加“ creationComplete”( FlexEvent.CREATION_COMPLETE )事件偵聽器。 “ creationComplete”僅發生一次,您可以將偵聽器添加到包含提交按鈕的任何對象中。

2)單擊“提交”時,添加了“ updateComplete”偵聽器的對象可能還沒有經過足夠的更改,無法經歷Flex的組件生命周期。 因此,不會調度任何事件。

為什么不發生這種情況的答案實際上取決於您將事件偵聽器添加到了哪個對象。

您是否嘗試過在提交按鈕上使用“單擊”處理程序,以便在單擊按鈕時可以禁用適當的元素? 同樣,“ click”事件將只發生一次,這與“ updateComplete”不同;)

暫無
暫無

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

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