지연로드가있는 <p:dataTable>
이 있습니다. 두 열에는 각각 <p:selectOneMenu>
이 있습니다.p : selectOneMenu를 기반으로 p : dataTable의 각 행에있는 selectOneMenu
첫 번째 열은 국가 목록을 포함하고 두 번째 열은 데이터베이스에서 상태 목록을 보유합니다.
는 I 번째 메뉴 (상태리스트를 포함하는 것) 들만 상태를 데이터 에서 첫번째 메뉴 국가 각 행를 대응하는 데이터 테이블의 각 행를 표시하기를 원한다 표.편집 모드에서 메뉴의 국가가 변경되면 해당 국가에 해당하는 상태가 해당 현재 행의 해당 메뉴에 채워 져야합니다.
데이터 테이블의 각 행에서 해당 국가에 해당하는 상태 목록을로드하는 방법은 무엇입니까?
데이터 테이블의이 두 열은 내가 어떻게 달성했는지에 대한 정확한 아이디어가 없기 때문에 불완전한 것으로 남습니다.
<p:column>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{row.state.country.countryName}"/>
</f:facet>
<f:facet name="input">
<p:selectOneMenu value="#{row.state.country}">
<f:selectItems var="country"
value="#{cityBean.selectedCountries}"
itemLabel="#{country.countryName}"
itemValue="#{country}"/>
<p:ajax update="states" listener="#{cityBean.getStates}"/>
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{row.state.stateName}"/>
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="states">
<f:selectItems var="state"
value="#{cityBean.selectedStates}"
itemLabel="#{state.stateName}"
itemValue="#{state}"/>
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
cityBean.selectedCountries
이 필요하지만 cityBean.selectedStates
도 불필요하며 다른 메뉴의 국가에 해당 만 상태를 검색하기 위해 수정해야 데이터베이스에서 모든 상태를 검색하는 모든 국가를 검색합니다.
여기에서 어떻게 진행할 수 있습니까?
여기 보조 클래스를 활용합니다. 당신의'countryId'는 당신의 관리 빈에 직접적으로 위치해 있지 않지만, 보조 클래스에 있습니다. (테이블을 만드는 데 사용하는리스트는이 보조 도구들로 구성되어 있습니다.) 그런 다음 변경된 행을 수신하는 아약스 이벤트 리스너 (이 이벤트는 MB로 전송 됨)가 있습니다. MB는 변경된 보조 객체 (countryId)를 가져 와서 보조 객체에 들어가는 업데이트 된 상태 목록을로드합니다. –