1
我在一個jsf頁面中有兩個數據表,並且兩個數據表都有兩個不同的託管bean。JSF數據表基於選擇填充行
//master table
<p:dataTable id="dataTable" var="req" lazy="true"
value="#{emp.lazyModel}" paginator="true" rows="10"
selection="#{emp.selectedRequest}">
<p:ajax event="rowSelectRadio" listener="#{emp.onRowSelect}" />
<p:column selectionMode=">
<h:outputText value="#{req.empNo}" />
</p:column>
// detail table
<p:dataTable id="Det" var="det" lazy="true"
value="#{dept.lazyModel}" paginator="true" rows="1">
<p:column>
<f:facet name="header">
<h:outputText value="DeptNo" />
</f:facet>
<h:outputText value="#{det.deptNo}" />
</p:column>
託管豆分別
//主表管理豆
@Named("emp")
@ViewAccessScoped
public class EmployeeManagedBean implements Serializable {
@PostConstruct
public void init() {
initTable();
}
//詳細表所管理的Bean
@Named("dept")
@ViewAccessScoped
public class DepartmentManagedBean implements Serializable {
@PostConstruct
public void init() {
initTable();
}
initTable()
是填充LazyModel兩者管理的方法豆類
當我選擇在主數據表中的行,我能在第一個數據表管理的Bean是EmployeeManagedBean
我的問題是什麼是通過將選定填充第二數據表,最好的辦法來獲得選擇行值第一個數據表的第二個託管bean的值,從而填充第二個數據表?在第二個datable中顯示值的觸發點應該基於在第一個datatable中選擇一行。
任何幫助是非常可觀的。
感謝
Darka,你的回答尤其是第3點幾乎解決了我的問題。有些工作仍然存在,那麼我可以確認我的表單是否工作。謝謝 – user75ponic
非常感謝,我的主細節表單正在工作,仍然需要做一些調整。讚賞。 – user75ponic
太棒了,我可以幫助:) – Darka