Problem when refreshing a dataTable with binding PrimeFaces 6

0

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);

    }

}
    
asked by Carlos Navarro 01.12.2016 в 23:57
source

0 answers