Seguinte!
A primeira vez que eu seleciono um item numa dataTable os selectonemenu que eu tenho no modal não vem populados, na segunda vez eles populam, mas com os dados da primeira seleção
Segue abaixo o código:
a dataTable:
<rich:dataTable rows="5" value="#{controleMorador.dados}" var="morador">
<f:facet name="header">
<rich:columnGroup>
<h:column>
<h:outputText value="ID" />
</h:column>
<h:column>
<h:outputText value="Cod Cid" />
</h:column>
<h:column>
<h:outputText value="Cod Pes" />
</h:column>
</rich:columnGroup>
</f:facet>
<h:column>
<a4j:commandLink id="link" value="#{morador.codigo}" action="#{controleMorador.navegacaoGrid}">
<f:param name="codigo" value="#{morador.codigo}" />
<rich:componentControl for="panel" attachTo="link" operation="show" event="onclick" />
</a4j:commandLink>
</h:column>
<h:column>
<h:outputText value="#{morador.codPes}" />
</h:column>
<h:column>
<h:outputText value="#{morador.codCid}" />
</h:column>
</rich:dataTable>
o modalPanel:
<rich:modalPanel id="panel">
<a4j:form>
<h:panelGrid columns="2">
<h:outputText value="Codigo" />
<h:inputText value="#{controleMorador.morador.codigo}" readonly="true" />
<h:outputText value="Cod. Cidade" />
<h:selectOneMenu id="codCidade"
rendered="true"
value="#{controleMorador.morador.codCid}">
<f:selectItems value="#{controleMorador.populaCombo}" />
</h:selectOneMenu>
<h:outputText value="Cod. Pessoa" />
<h:selectOneMenu id="codPessoa"
rendered="true"
value="#{controleMorador.morador.codPes}">
<f:selectItems value="#{controleMorador.populaCombo}" />
</h:selectOneMenu>
<a4j:commandButton value="Editar" action="#{controlePessoa.helloWorld}" />
</h:panelGrid>
</a4j:form>
</rich:modalPanel>
e os métodos q populam os selectOneMenu:
public ArrayList listaTudoProCombo(){
String query = "SELECT * FROM morador";
ArrayList lista = new ArrayList();
ResultSet rs;
try {
rs = conecta().getStatement().executeQuery(query);
if(rs == null){
return lista;
}
while(rs.next()){
lista.add(new SelectItem(rs.getInt("codigo")));
}
}catch(Exception e){
e.printStackTrace();
}
return lista;
}
public List getPopulaCombo(){
setPopulaMorador(dao.listaTudoProCombo());
return getPopulaMorador();
}
public List getDados(){
return dao.listaTudo();
}
}
se alguém puder me ajudar ;D
vlww