I have the following problem and datatable does not show the data, it shows well the columns but not the records. When I invoke from an xhtml the one that has the table works well, and it worked fine with primefaces 5.0, when I changed to primefaces 6.0 I had the problems, they occur when I select a data to refresh the table, but as I mention it only updates the columns, it does not show the records.
<p:dataTable
emptyMessage="Selecciona un registro del wbs"
id="gridActivosDashboard"
binding="#{newDashboardTemplatePrincipalBean.tablaActivosVista}"
rowKey="#{camposSeleccionados.id}"
scrollable="true"
scrollWidth="98%"
selection="#{newDashboardTemplatePrincipalBean.hijoWbsSeleccionadoAuxiliar}"
selectionMode="single"
style="font-size: 9px;font-family: verdana,arial,sans-serif;"
styleClass="ui-datatable-tablewrapper"
var="camposSeleccionados"
>
<p:ajax event="rowSelect"
listener="#{newDashboardTemplatePrincipalBean.cargarMarcadorGridPorNodo()}"
update=":formGral:panelBotones " />
</p:dataTable>
public void crearTablaPorNodo() {
PortadaBean portadaBean = Utilidades.obtenerBean("portadaBean");
FacesContext fc = FacesContext.getCurrentInstance();
portadaBean.crearListaTablaPortada();
int idAux = portadaBean.getCamposPosibles().size();
portadaBean.getCamposPosibles().add(new ListaCamposTablaPortada(-1, 0, "", "----- Propiedades -----", "", 0, "140", new Date(), Utilidades.obtenerUsuarioLogueado()));
for (Sgie110NewDashboardActivosPropiedades propiedadesAux : listaPropiedadesPorNodoAgrupadas) {
ListaCamposTablaPortada campoNuevo = new ListaCamposTablaPortada();
campoNuevo.setIdAux(idAux);
campoNuevo.setIdBase(0);
campoNuevo.setCampo(propiedadesAux.getSgie110NewDashboardActivosProppermanentesobjs().getDescripcionPropiedad());
campoNuevo.setNombreVista(propiedadesAux.getSgie110NewDashboardActivosProppermanentesobjs().getDescripcionPropiedad());
campoNuevo.setTablaOrigen("sgie110NewDashboardActivosProppermanentesobjs");
campoNuevo.setPropiedad(true);
campoNuevo.setEdito(Utilidades.obtenerUsuarioLogueado());
campoNuevo.setFechaActualizacion(new Date());
campoNuevo.setAnchoColumna("140");
campoNuevo.setAnchoColumnas(140);
campoNuevo.setTipoCampo(0);
portadaBean.getCamposPosibles().add(campoNuevo);
idAux++;
}
hijoWbsSeleccionadoAuxiliar = listaArbolClonConPropiedadesAuxiliar.get(0);
tablaActivosVista = null;
tablaActivosVista = new DataTable();
tablaActivosVista = (DataTable) fc.getApplication().createComponent("org.primefaces.component.DataTable");
tablaActivosVista.setVar("camposSeleccionados");
tablaActivosVista.setCurrentPageReportTemplate("{totalRecords} Registros. Página: {currentPage} de {totalPages}");
tablaActivosVista.setFilterDelay(1000);
tablaActivosVista.setFilteredValue(listaHijosWbsFiltrados);
tablaActivosVista.setPaginator(true);
tablaActivosVista.setPaginatorTemplate("{CurrentPageReport} {JumpToPageDropdown}");
tablaActivosVista.setPaginatorPosition("bottom");
tablaActivosVista.setRows(10);
tablaActivosVista.setRowsPerPageTemplate(utilidadesBean.getNoFilasPieGrid());
tablaActivosVista.setValue(listaArbolClonConPropiedadesAuxiliar);
tablaActivosVista.setSelection(hijoWbsSeleccionadoAuxiliar);
if (listaCamposTabla.isEmpty()) {
tablaActivosVista.setRendered(false);
}
List<UIColumn> columnasNuevas = new ArrayList<>();
ValueExpression valExpr;
ValueExpression tituloColumna;
Column columnaNueva;
ExternalContext externalContext = fc.getExternalContext();
String userAgent = externalContext.getRequestHeaderMap().get("User-Agent");
int contadorCampos = 0;
for (Sgie110NewDashboardCamposTabla aux : listaCamposTabla) {
columnaNueva = new Column();
valExpr = createValueExpression("");
String tablas = "sgie110NewDashboardActivosWbs.sgie110NewDashboardActivosVersiones";
if (!aux.isPropiedad()) {
if (aux.getTablaOrigen().equals("sgie110NewDashboardActivos")) {
tablas += "." + aux.getTablaOrigen();
}
/**
* tipoCampo = 0; si es valor String tipoCampo = 1; si es valor
* Númerico tipoCampo = 2; si es valor Date
*/
switch (aux.getTipoCampo()) {
case 0:
columnaNueva.setStyleClass("alinieacionAlfanumericaGrid");
valExpr = createValueExpression("#{camposSeleccionados." + tablas + "." + aux.getCampo() + "}");
break;
case 1:
columnaNueva.setStyleClass("alinieacionNumericaGrid");
valExpr = createValueExpression("#{camposSeleccionados." + tablas + "." + aux.getCampo() + "}");
break;
case 2:
columnaNueva.setStyleClass("alinieacionNumericaGrid");
valExpr = createValueExpression("#{utilidadBean.formatearFecha(camposSeleccionados." + tablas + "." + aux.getCampo() + ")}");
break;
}
for (ListaCamposTablaPortada camposAuxiliar : portadaBean.getCamposPosibles()) {
if (camposAuxiliar.getCampo().equals(aux.getCampo())) {
columnaNueva.setHeaderText(camposAuxiliar.getNombreVista());
if (userAgent.contains("Mobile")) {
//si es version movil, se incrementara el width 20 px mas para que las columnas salgan de manera correcta
int anchoColumnaNuevo = camposAuxiliar.getAnchoColumnas() != 0 ? aux.getAnchoColumna() : Integer.parseInt(camposAuxiliar.getAnchoColumna());
columnaNueva.setWidth(String.valueOf(anchoColumnaNuevo + 20));
} else {
columnaNueva.setWidth(aux.getAnchoColumna() != 0 ? String.valueOf(aux.getAnchoColumna()) : camposAuxiliar.getAnchoColumna());
}
}
}
columnaNueva.setValueExpression("filterBy", valExpr);
columnaNueva.setValueExpression("sortBy", valExpr);
columnaNueva.setValueExpression("value", valExpr);
HtmlOutputText out = new HtmlOutputText();
out.setValueExpression("value", valExpr);
columnaNueva.setField("setField");
columnaNueva.getChildren().add(out);
columnasNuevas.add(columnaNueva);
} else {
int contador = 0;
for (Sgie110NewDashboardActivosPropiedades propiedadesAxu : listaArbolClonConPropiedadesAuxiliar.get(0).getListaSgie110NewDashboardActivosPropiedades()) {
if (aux.getCampo().equals(propiedadesAxu.getSgie110NewDashboardActivosProppermanentesobjs().getDescripcionPropiedad())) {
columnaNueva.setStyleClass("alinieacionAlfanumericaGrid");
if (propiedadesAxu.getSgie110NewDashboardActivosProppermanentesobjs().getAspecto() == 4) {
valExpr = createValueExpression("#{camposSeleccionados.listaSgie110NewDashboardActivosPropiedades.get(" + contador + ").valor}");
} else if (propiedadesAxu.getSgie110NewDashboardActivosProppermanentesobjs().getAspecto() == 6) {
valExpr = createValueExpression("#{camposSeleccionados.listaSgie110NewDashboardActivosPropiedades.get(" + contador + ").sgie110NewDashboardActivosValorespropiedades.valor}");
}
}
tituloColumna = createValueExpression("#{newDashboardTemplatePrincipalBean.listaCamposTabla.get(" + contadorCampos + ").campo}");
columnaNueva.setValueExpression("headerText", tituloColumna);
contador++;
}
for (ListaCamposTablaPortada camposAuxiliar : portadaBean.getCamposPosibles()) {
if (camposAuxiliar.getCampo().equals(aux.getCampo())) {
columnaNueva.setHeaderText(camposAuxiliar.getNombreVista());
if (userAgent.contains("Mobile")) {
//si es version movil, se incrementara el width 20 px mas para que las columnas salgan de manera correcta
int anchoColumnaNuevo = camposAuxiliar.getAnchoColumnas() != 0 ? aux.getAnchoColumna() : Integer.parseInt(camposAuxiliar.getAnchoColumna());
columnaNueva.setWidth(String.valueOf(anchoColumnaNuevo + 20));
} else {
columnaNueva.setWidth(aux.getAnchoColumna() != 0 ? String.valueOf(aux.getAnchoColumna()) : camposAuxiliar.getAnchoColumna());
}
}
}
columnaNueva.setValueExpression("filterBy", valExpr);
columnaNueva.setValueExpression("sortBy", valExpr);
columnaNueva.setValueExpression("value", valExpr);
HtmlOutputText out = new HtmlOutputText();
out.setValueExpression("value", valExpr);
columnaNueva.setField("setField");
columnaNueva.getChildren().add(out);
columnasNuevas.add(columnaNueva);
}
contadorCampos++;
}
if (columnasNuevas.size() > 0) {
tablaActivosVista.setColumns(columnasNuevas);
}
}