Olá a todos,
Procurei algum outro tópico relacionado, mais era muito antigo e não era assim tão relacionado
Estou tendo um problema com a recuperação das informações no MBean quando tenho rich:dataTable e um h:selectOneRadio, o meu atributo dataTable vem vazio.
alguem sabe como resolver isso?
segue o codigo
xhml
<rich:dataTable
id="listaEdita"
value="#{usuario.dmUsuarioOrgaoCollection}"
binding="#{usuario.hdtUsuarioOrgaoCollection}"
var="item"
width="100%"
rows="3">
<f:facet name="header">
<rich:columnGroup>
<rich:column style="width : 180px;">
<h:outputText value="XXXXXXXXXXXXXX " />
</rich:column>
<rich:column style="width : 250px;">
<h:outputText value="XXXXXXXXXX" />
</rich:column>
<rich:column style="width : 250px;">
<h:outputText value="XXXXXXXXXXX" />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:subTable
width="99%"
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'">
<h:inputHidden value="item.orgao.cdOrgao" />
<h:inputHidden value="item.perfil.cdPerfil" />
<rich:column style="width : 180px;">
<f:facet name="footer">
<h:outputText value="#{item.orgao.nmOrgao}" />
</f:facet>
</rich:column>
<rich:column>
<f:facet name="footer">
<h:outputText value="#{item.perfil.nmPerfil}" />
</f:facet>
</rich:column>
<rich:column style="width : 200px;">
<f:facet name="footer">
<h:selectOneRadio value="#{item.cdStatusRel}">
<f:selectItem itemLabel="Ativo" itemValue="1" />
<f:selectItem itemLabel="Inativo" itemValue="0" />
</h:selectOneRadio>
</f:facet>
</rich:column>
</rich:subTable>
</rich:dataTable>
mbean
private DataModel dmUsuarioOrgaoCollection = new ListDataModel();
private HtmlDataTable hdtUsuarioOrgaoCollection = new HtmlDataTable();
/* gets e sets*/
public void visualizaUsuarioAction(ActionEvent event){
List<UsuarioOrgao> listUO = new ArrayList<UsuarioOrgao>();
for (UsuarioOrgao uo : this.usuario.getUsuarioOrgaoCollection()) {
listUO.add(uo);
}
this.setDmUsuarioOrgaoCollection(new ListDataModel(listUO));
}
public void updateUsuarios(ActionEvent event){
int n = this.hdtUsuarioOrgaoCollection.getRows();
for (int i = 0; i < n; i++) {
this.hdtUsuarioOrgaoCollection.setRowIndex(i);
UsuarioOrgao uo = (UsuarioOrgao)hdtUsuarioOrgaoCollection.getRowData();
System.out.println(uo.getCdStatusRel()); // ERRO uo é nulo
}
o hdtUsuarioOrgaoCollection não traz os registros …
obrigado