我在两列中<t:dataTable>
有两个下拉列表。<h:selectOneMenu>
第二个下拉列表的填充取决于第一个下拉列表的值。
<t:dataTable value="#{tablaConfigBean.tablaConfigList}" var="item">
<t:column>
<h:selectOneMenu value="#{item.tabla}">
<f:selectItem itemLabel="SIN CORRESPONDENCIA" itemValue="SIN CORRESPONDENCIA"/>
<f:selectItems value="#{tablaConfigBean.tablasList}" var="tabla" itemLabel="#{tabla}" itemValue="#{tabla}"/>
<f:ajax listener="#{tablaConfigBean.rellenaCampos}" render="seleccionCampoCorrespondido"/>
</h:selectOneMenu>
</t:column>
<t:column>
<h:selectOneMenu id="seleccionCampoCorrespondido" value="#{item.columnaCorr}">
<f:selectItems id="listaCampoCorrespondido" value="#{tablaConfigBean.camposList}" var="campo" itemValue="#{campo}"/>
</h:selectOneMenu>
</t:column>
</t:dataTable>
豆:
public void rellenaCampos (AjaxBehaviorEvent event) throws Exception {
dataTable = (HtmlDataTable) event.getComponent().getParent().getParent();
fila = (cCNtablaConfig) dataTable.getRowData();
tablaParaCampos = fila.getTabla();
camposList = cDAOtablaConfig.rellenaCamposTabla(idSistema, sistema.desEsquema, tablaParaCampos, 3);
}
尽管第一个下拉列表没有任何值,但它<f:selectItems>
始终默认加载。如果我选择其中一个值,则会<f:selectItems>
填充第二个下拉列表的 。当两个<h:selectOneMenu>
s 必须显示从数据库预初始化的值时,就会出现问题。正如我所写的,除非我手动选择第一个下拉列表中的值,否则第二个下拉列表不会加载相应的值。然后,出现预期值。
我尝试过这样的事情:Execute managebean method from javascript onload event,但我无法使其工作。我怎样才能做到这一点?