在ADF中,使用af: table的時候,可以非常簡單地設置Table是否使用QBE filter fields;如下圖,只要選中Filtering就可以。
jspx中自動產生如下代碼:
[html]運行應用後,所有記錄顯示如下:
類似Oracle form中的操作,在列中輸入值,點擊回車過濾數據:
運行後的效果如下圖,過濾部門編號:
點擊[Set Dname,Loc Search fields & Reexecute Query],重置filter fields,並執行查詢:
被ADF封裝後的框架,FilterableQueryDescriptor對應table.getFilterModel(),也就是jspx頁面中af: table綁定的filterMoel屬性;為了使用Java代碼控制filter的邏輯,需要使用FilterableQueryDescriptor的getFilterCriteria()方法;getTableFilterCriteria().clear()可以清空所有的綁定參數,getTableFilterCriteria().put("Dname","%N%")給Dname設置綁定值。
部分Java代碼片段:
[java]使用QBE filter field的方式進行數據過濾十分簡單方便,頁面不需要設置查詢區域,布局也容易控制;不過,國內的客戶似乎更習慣在查詢區域輸入條件進行數據過濾,讓客戶接受我們的設計方案似乎更加有挑戰。
盧玉雙 2012/01/11 @上海