我有一个<p:dataTable>
懒加载。在其中两列<p:selectOneMenu>
中,每列中都有一个。
第一列包含国家列表,第二列包含数据库中的州列表。
我希望第二个菜单(包含状态列表的菜单)仅显示数据表每一行中与数据表每一行中第一个菜单中的国家相对应的那些状态。
在编辑模式下,当其菜单中的国家/地区发生更改时,对应于该国家/地区的州应填充到其当前行的菜单中。
如何在数据表的每一行中加载与其国家相对应的州列表?
数据表中的这两列不完整,因为我不知道如何实现这一点。
<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
也从数据库中检索所有不必要的州,应修改为仅检索与另一个菜单中的国家相对应的那些州。
我该如何从这里开始?