在載入頁面前呼叫 DataControl Operations

在 Structure 窗格中,右鍵單擊 executables 節點,然後從上下文菜單中選擇 Insert inside executables > invokeAction 選項

 

在收到指示之前,頁面定義中的操作綁定將不執行它的操作。可以通過三種方法調用操作綁定:

1. 可以通過編寫代碼以編程方式調用;
2. 可以通過用戶單擊頁面中的按鈕或鏈接以聲明方式調用;
3. 可以在呈現頁面時以聲明方式進行調用,而不需要用戶單擊任何內容

在本例中,我們希望在加載頁面時自動執行 setCurrentRowWithKey 操作,因此我們將在頁面定義的“executables”部分配置一個 invokeAction 指示,以便通過聲明方式達到目的。

在 Insert InvokeAction 對話框中,輸入以下值:

Id setCurrentRowFromOrderId
Binds setCurrentRowWithKey(從下拉列表中)

(setCurrentRowWithKey 是 要呼叫的Operation,是page structure bindings 節點下的action)

:Id 名稱可以由開發人員根據喜好自行定義。

單擊 Advanced Properties 選項卡。

:默認情況下,“invokeAction”將在每次呈現頁面時執行。這包括當頁面最初呈現時,以及在處理隨後的“postback”事件時,例如在用戶與頁面上的按鈕或鏈接交互時。我們可以使用布爾值 EL 表達式指定一個可選 RefreshCondition,以便以聲明方式配置 invokeAction 應何時“引發”。當表達式計算爲 true 時,invokeAction 將調用其相關操作綁定。當表達式計算爲 false 時,將跳過 invokeAction,不調用相關的操作綁定。

由於我們只希望最初呈現頁面(而不是在以後處理 postback 事件)時觸發 setCurrentRowWithKey 操作,因此可以使用 EL 表達式 #{adfFacesContext.postback == false} 完成該操作。最初呈現頁面時,該 postback 屬性將爲 false。

輸入下列值:

Refresh ifNeeded
Refresh Condition ${adfFacesContext.postback==false}

單擊 OK

 

 

發佈了17 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章