Problema con openfaces de JSF
Hola a todos, espero puedan ayudarme, lo que pasa es que hace poco empece a aprender a programar en JSF manejando la libreria de openfaces y pues tengo un problemilla, tengo una tabla (DATATABLE) en la cual se cargan una lista de registros, la datatable la tengo con la propiedad customDataProviding en true, porque me toca hacer el filtrado y paginado de forma manual, la tabla tiene varias columnas y en cada cabecera de la columna se encuentra un inputtextfilter (caja de texto) que se encarga de filtrar la informacion, todo bien hasta aqui el problema radica, en que tengo unas columnas en un columngroup y por alguna extraña razon no se porque pero estas columnas que se encuentran en el columngroup no me las filtra. Pondre el codigo del xhtml y el codigo de java donde recojo los parametros filtrados por los inputtextfilter.
var="mensaje"
value="#{mensajesInfoMBean.mensajeEntradaList}"
style="margin-top: 15px; width: 100%; height: 420px;"
sortAscending="false"
customDataProviding="true"
totalRowCount="#{mensajesInfoMBean.recordCountEntr}"
sortColumnId="id"
sortedAscendingImageUrl="../images/treetable/sort_a.gif"
sortedDescendingImageUrl="../images/treetable/sort_d.gif"
sortedColumnHeaderStyle="background: url('../images/treetable/tableHeader_sorted.gif') repeat-x;"
sortableHeaderRolloverStyle="background: url('../images/treetable/tableHeader_rollover.gif') repeat-x !important;"
sortedColumnBodyStyle="background: none;"
headerRowStyle="background: url('../images/treetable/tableHeader.gif') repeat-x; height: 20px;"
subHeaderRowStyle="background: url('../images/datatable/filter.gif') repeat-x #f7f7f7; border-top: 1px solid #f6f7f8;"
bodySectionStyle="background: #ffffff"
bodyRowStyle="background: #ffffff !important; height: 21px;"
bodyOddRowStyle="background: #f5f5f5 !important; height: 21px;"
headerVertSeparator="1px solid #d0d0d0, 1px solid #a0a0a0"
horizontalGridLines="1px solid #f6f7f8"
pageSize="12">
<o:singleRowSelection
rowData="#{mensajesInfoMBean.selectedMensajeEntrada}"
style="background: url('../images/treetable/selected.gif') repeat-x #5d8bba !important; color: white !important;"
render="mensajePanel"/>
<o:scrolling/>
<o:columnReordering/>
<o:columnResizing resizingState="#{mensajesInfoMBean.columnResizingState}" autoSaveState="true"/>
<f:facet name="columnMenu">
<o:columnMenu/>
</f:facet>
<f:facet name="columnMenuButton">
<o:captionButton style="border-left: none; background: url('../images/treetable/columnMenuBtn.gif');"
rolloverStyle="border-left: none; background: url('../images/treetable/columnMenuBtnRollover.gif');"
pressedStyle="border-left: none; background: url('../images/treetable/columnMenuBtnPressed.gif');"/>
</f:facet>
<o:column id="id"
header="Id"
width="15%"
sortingExpression="#{mensaje.id}"
bodyStyle="text-align: left; white-space: nowrap; padding-left: 5px; padding-right: 5px;"
headerStyle="text-align: left; padding-left: 5px; padding-right: 5px;">
<f:facet name="subHeader">
<o:inputTextFilter expression="id"/>
</f:facet>
<h:outputText value="#{mensaje.id}" style="white-space: nowrap;"/>
</o:column>
<o:columnGroup header="Estado">
<o:column id="estado"
header="Nombre"
width="10%"
headerStyle="white-space: normal;"
sortingExpression="#{mensaje.stateName}"
bodyStyle="text-align: right; padding-left: 5px; padding-right: 5px;"
>
<f:facet name="subHeader">
<o:inputTextFilter expression="estado" autoFilterDelay="1000"/>
</f:facet>
<h:outputText value="#{mensaje.stateName}"/>
</o:column>
<o:column id="fechEstado"
header="Fecha"
width="10%"
sortingExpression= "#{mensaje.stateupdatetimeString}"
bodyStyle="text-align: right; padding-left: 5px; padding-right: 5px;"
headerStyle="white-space: normal;">
<f:facet name="subHeader">
<o:inputTextFilter expression="fechEstado" autoFilterDelay="1000"/>
</f:facet>
<h:outputText value="#{mensaje.stateupdatetimeString}"/>
</o:column>
</o:columnGroup>
<f:facet name="below">
<h:panelGrid columns="2" styleClass="previewPanel" width="100%">
<o:dataTablePaginator id="paginator" style="margin-left: 20px; margin-top: 10px;"/>
</h:panelGrid>
</f:facet>
<!--
-->
</o:dataTable>
CODIGO JAVA:
CompositeFilterCriterion filterCriteria = Faces.var("filterCriteria", CompositeFilterCriterion.class);
for (FilterCriterion entry : filterCriteria.getCriteria()) {
ExpressionFilterCriterion criterion = (ExpressionFilterCriterion) entry;
String columnId = criterion.getExpressionStr();
String searchString = criterion.getArg1().toString();
criteriaMap.put(columnId, searchString);
}
En esta parte de codigo java es donde se filtran los datos ingresados en el inputtextfilter, todos los datos ingresados son tomados excepto los de las columnas que se encuentran en columngroup, espero me puedan ayudar gracias de antemano
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 4 días 16 horas
hace 7 semanas 2 días
hace 1 año 18 horas
hace 2 años 11 semanas
hace 2 años 15 semanas
hace 2 años 23 semanas
hace 2 años 31 semanas
hace 2 años 34 semanas
hace 2 años 35 semanas
hace 2 años 38 semanas