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 8 semanas 5 días
hace 12 semanas 6 días
hace 20 semanas 3 días
hace 28 semanas 3 días
hace 31 semanas 1 día
hace 32 semanas 5 días
hace 35 semanas 6 días
hace 35 semanas 6 días
hace 41 semanas 6 días
hace 43 semanas 4 horas