1
我有以下要求。在表Oracle ADF:如何過濾RichTable中的行?
- 顯示數據
- 點擊複選框被一些條件
- 點擊複選框篩選出當前顯示的行再次返回數據的外觀到之前的狀態
要做到這一點我'ov ovidedided method rowQualifies在我的ViewObject中,這是基於SQL的簡單視圖對象來應用我的自定義過濾器邏輯。
當用戶點擊複選框我刷新視圖對象的數據應用過濾器
viewObject.setDoFiltering(true);
viewObject.setQueryMode(ViewObject.QUERY_MODE_SCAN_VIEW_ROWS);
viewObject.executeQuery();
它完美,數據集更新,而無需與數據庫進行交互和我的自定義過濾器的邏輯也適用。
但是,當我需要取消過濾器,它不會工作,因爲迭代器不再包含任何以前的行,我只能從數據庫中加載它們,但這意味着我可以失去已經作出查看對象行的更改。
所以,當我做
viewObject.setDoFiltering(false);
viewObject.setQueryMode(ViewObject.QUERY_MODE_SCAN_VIEW_ROWS);
viewObject.executeQuery();
它將返回我顯示了前一次的行。 如果我做
viewObject.setDoFiltering(true);
viewObject.setQueryMode(ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES);
viewObject.executeQuery();
這將返回我的所有行,但我會失去我已經取得查看對象行的變化。
我的問題是如何避免它?也許有另一種方式做到這一點?也許可以用RichTable做些什麼來告訴它如何過濾內存中的行。
任何建議熱烈appricated!