這裏是當選擇一排保存選定行鍵,然後在以後恢復它回到一個辦法: -
爲表
SelectionListener中=創建一個選擇監聽器「#{backingBeanScope.mBean.onTableSelect}」
並使用它將選定的行鍵存儲在pageFlowScope可變
public void onTableSelect(SelectionEvent selectionEvent) {
JSFUtils.resolveMethodExpression("#{bindings.DepartmentsView.collectionModel.makeCurrent}", null, new Class[]{ SelectionEvent.class }, new Object[]{ selectionEvent });
RichTable table = (RichTable) selectionEvent.getSource();
CollectionModel tableModel = (CollectionModel) table.getValue();
JUCtrlHierBinding adfTableBinding = (JUCtrlHierBinding) tableModel.getWrappedData();
DCIteratorBinding tableIteratorBinding = adfTableBinding.getDCIteratorBinding();
String key = tableIteratorBinding.getCurrentRowKeyString();
AdfFacesContext.getCurrentInstance().getPageFlowScope().put("selectedRowKey", key);
}
在表結合的getter方法,設置當前行與變量存儲在pageFlowScope鍵值
public RichTable getSearchTable()
{
DCBindingContainer dcBindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry() ;
DCIteratorBinding iter= dcBindings.findIteratorBinding("DepartmentsView1Iterator");
if (null != AdfFacesContext.getCurrentInstance().getPageFlowScope().get("selectedRowKey"))
{
String key = (String)AdfFacesContext.getCurrentInstance().getPageFlowScope().get("selectedRowKey");
iter.setCurrentRowWithKey(key.trim());
AdfFacesContext.getCurrentInstance().getPageFlowScope().put("selectedRowKey", null);
}
return searchTable;
}
如果您的託管bean具有頁面流範圍,那麼你代替存儲選擇鍵一個範圍變量,您可以將它存儲在一個bean屬性中。
您是在任務流之間共享數據控制還是將選定行鍵作爲輸入傳遞給任務流? – amishra
雅我在任務流中共享DC。 –
另外,您是否有結果表的自定義selectionListener,或者使用默認值? – amishra