<t:dataTable>
2 つの列に 2つのドロップダウンがあり<h:selectOneMenu>
ます。2 番目のドロップダウンは、最初のドロップダウンの値に応じて入力されます。
<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>
と、2 番目のドロップダウンの が入力されます。問題は、両方<h:selectOneMenu>
の がデータベースから事前に初期化された値を表示する必要がある場合に発生します。私が書いたように、最初のドロップダウンで値を手動で選択しない限り、2 番目のドロップダウンには対応する値がロードされません。すると、期待値が表示されます。
私は次のようなことを試しました: javascript onload event から managebean メソッドを実行しますが、機能させることができません。これどうやってするの?