Bom dia, estou com problema em um dataTable, ela consiste em uma matriz cliente x dias, só que em cada coluna tem um collspan = 2, até ai tudo bem só que pra fazer isso tive que pegar os dias do mes e multiplicar por 2. Exemplo: fevereiro tem 29 dias só que no List conta como 58. Ai que entra meu problema preciso que os dias a partir do dia 30 no mes de fevereiro não apareça. Porque eu fiz isso, como cada coluna tem um collspan = 2 foi o unico jeito que encontrei pra cada coluna ter 2 valores.
Segue o código da pagina:
<h:panelGrid columns="3">
<p:dataTable value="#{matrizBean.cliente}" var="cliente" bgcolor="#FFFFFF" id="teste" style="max-width: 550px; min-width: 550px">
<p:column style="max-width: 50px; min-width: 30px">
<f:facet name="header">Quarto</f:facet>
<h:outputText value="#{cliente}" />
</p:column>
<c:forEach var="mes" items="#{matrizBean.dia}">
<p:column style="max-width: 80px; min-width: 30px; overflow: hidden" colspan="2" rendered="#{matrizBean.colunaMatriz}">
<f:facet name="header">#{mes}</f:facet>
<h:outputText value="#{matrizBean.valores[cat][mes]}" style="color:Green">
<f:attribute name="cliente" value="#{cliente}"/>
<f:attribute name="mes" value="#{mes}"/>
</h:outputText>
</p:column>
</c:forEach>
</p:dataTable>
</h:panelGrid>
Usei o rendered só que não está funcionando segue o metodo pro rendered
public boolean getColunaMatriz(){
cal.setTime(mesAtual);
cal.set(Calendar.DAY_OF_MONTH, 1);
int ultimoDia = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int tamanho = dia.size();
for (String mes: this.dia) {
Integer mesA = Integer.parseInt(mes);
if(mesA <= ultimoDia){
coluna = true;
return coluna;
}else{
coluna = false;
return coluna;
}
}
return coluna;
}