如何在使用 ADF 插入或刪除行後重新整理資料表

2021-09-12 03:30:11 字數 3958 閱讀 8693

該案例的另乙個情況是插入新行。這通常在乙個單獨頁面上執行。例如,下圖描述了乙個插入表單,使用者在其中輸入新資料並單擊提交按鈕來插入行:

該頁上的 create 按鈕從會話 bean 呼叫 persistentity() 資料控制項方法。預設情況下,在呼叫該方法後,會立即將該行插入表中。但是,如果 create 按鈕也將使用者導航回瀏覽頁,則該錶不會顯示新行,因為預設情況下它不會重新整理。標題為「使用會話 bean 資料控制項插入行」的部分說明了如何在呼叫諸如 persistentity() 的方法且使用者返回包含資料表的頁面之後重新整理表。

本文假設您已經建立了訪問 ejb entity 或 toplink pojo 永續性物件的會話 bean,並建立了該會話 bean 的資料控制項。此外,下面的步驟假設您已經使用 jsf、adf faces 或 adf swing 建立了乙個包含資料表的頁。

以上面的瀏覽頁影象為例,該表是通過將departments集合從資料控制項面板拖到頁面並從動態列表中選擇create > tables > adf read only table...來建立的。

在插入頁影象中,插入表單是通過將資料控制項面板中constructors節點下的departments集合拖放到頁面來建立的。這只是建立新行的一種方式,srdemo 示例和附帶文件說明了如何使用其他方法執行插入操作。

下圖描述了本例的頁面流:

執行以下步驟將刪除功能新增到瀏覽頁:

在可視編輯器中導航到瀏覽頁,確保資料表啟用了選擇以便可以選擇單個行,並且在表中啟用了 submit 按鈕。

removeentity(object)方法從會話 bean 資料控制項拖到瀏覽表的 submit 按鈕。從動態選單中,選擇bind existing commandbutton

在 action binding editor 中,指定要刪除的實體。在 value 欄位中雙擊以啟用橢圓形按鈕,然後單擊橢圓形按鈕開啟表示式編輯器。

展開adf bindingsbindingsfindalldepartmentsitercurrentrow節點。將 dataprovider 節點新增到右側,以便將 expression 指定為$。假設集合的迭代器名為 findalldepartmentsiter。 根據需要修改迭代器名稱。 注意,該按鈕的 actionlistener 屬性設定為 #。

在刪除行後執行以下步驟重新整理資料表:

為了在單擊 removeentity 按鈕後執行 removeentity() 方法以及呼叫表的查詢方法,請建立乙個 jsf 託管 bean。雙擊 removeentity() 按鈕呼叫託管 bean 屬性。

單擊new...建立乙個新的託管 bean。

指定 bean 的名稱和類,並單擊ok。指定乙個方法名,如果要確保將 removeentity() 繫結**新增到方法中,請選擇generate adf binding code並單擊ok

注意,託管 bean 方法將使用以下**呼叫 removeentity 方法繫結(在瀏覽頁定義檔案中使用適當的實體引數值進行了定義): operationbinding operationbinding = bindings.getoperationbinding("removeentity");

object result = operationbinding.execute();

此外,要呼叫查詢操作方法繫結,需要將類似**新增到方法中。

將以下**複製並貼上到託管 bean 的

object result = operationbinding.execute();

語句下方,並使用表的查詢方法名替換 findalldepartments:

//refresh the page

operationbinding requery = bindings.getoperationbinding("findalldepartments");

requery.execute();

執行以下步驟使用建構函式建立新行:

在可視編輯器中導航到插入頁,並確保表單包含乙個 submit 按鈕。

要提交插入的行,請使用 persistentity 方法。將persistentity(object)節點從資料控制項面板拖到 submit 按鈕,並選擇bind existing commandbutton

persistentity 方法接受乙個引數(即,要提交的實體)。在 action binding editor 中,雙擊value欄位以啟用橢圓形按鈕。單擊橢圓形按鈕繫結實體引數的值。在繫結編輯器中,通過展開adf bindingsbindingsdepartmentsitercurrentrow節點來選擇要提交的實體。選擇dataprovider,並將其新增到右側以建立表示式。

確保表示式設定為$,並單擊ok。假設集合的迭代器名為 departmentsiter。根據需要修改迭代器名稱。

在插入頁可視編輯器中,選擇persistentity按鈕。使用 property inspector 將 action 屬性設定為返回到瀏覽頁的導航示例名。

在插入行後執行以下步驟重新整理資料表:

開啟瀏覽頁,右鍵單擊可視編輯器。選擇go to page definition

在 structure 視窗中,展開最頂層節點。右鍵單擊executables節點並選擇insert inside executables->invokeaction

在 common properties 選項卡中,指定tablerefresh作為操作的 id,並在 binds 下拉列表中選擇您的表查詢名稱(如 findalldepartments)。

單擊advanced properties選項卡。

選擇ifneeded作為 refresh 屬性,如果要確保在每次呈現頁面時呼叫該操作,請輸入$作為 refreshcondition 並單擊ok

從資料表中選擇一行,單擊按鈕刪除該行,該行會保留在同一頁面上。應該重新整理資料表,以便刪除的行不再顯示。

在包含資料表的頁面上單擊乙個按鈕,以導航到插入表單。指定行細節,單擊按鈕插入該行,然後返回到瀏覽頁。應該重新整理資料表,以便插入的行顯示出來。

這些案例的重新整理操作是通過使用 jsf 託管 bean 執行重新整理,並使用在頁定義檔案中呼叫的操作的 !adffacescontext.postback 重新整理條件來完成的。

有關更多資訊,請參閱 oracle 技術網的 jdeveloper 頁上的教程、示例應用程式和 adf 開發人員指南。

如何在使用 ADF 插入或刪除行後重新整理資料表

該案例的另乙個情況是插入新行。這通常在乙個單獨頁面上執行。例如,下圖描述了乙個插入表單,使用者在其中輸入新資料並單擊提交按鈕來插入行 該頁上的 create 按鈕從會話 bean 呼叫 persistentity 資料控制項方法。預設情況下,在呼叫該方法後,會立即將該行插入表中。但是,如果 crea...

如何在部落格或論壇中插入公式

但是開啟的有時候會慢點,但是畢竟公式更直觀點。方法1原始碼是 顯示效果 方法2 顯示效果 暫時只發現這兩種方法 據說後面的語法是一種叫做latex的語法,應該是一種排版語言,怎麼得到這個公式描述,如果學習latex語法來那就太累了 大家一般用word裡面的公式編輯器來生成公式,可以安裝mathtyp...

C 使用NPOI移動若干行(或刪除行)

需要引用npoi庫 dome 如下 string filepath f file test.xlsx 檔案路徑 int stratrowindex 5 起始行,行索引從0開始 int endrowindex 8 結束行,行索引從0開始 int rownumber 1 需要移動的行數 負數表示向上移動...