Tomahawk dataScroller não reinicia

2 respostas
contrabando

Fala galera, depois de 3 anos trabalhando com Struts resolvi começar com JSF (ô carinha atrasado hehehe), estou utilizando tomahawk+ajax4jsf+jboss(servidor de aplicação), bom mas vamos ao problema:

tenho uma tela que busca alguns registros no banco, filtrando por periodo
os dados são exibidos em um dataTable, tenho dois dataScroller (um para quantidade de registros e outro para os botões de paginação)
[img]https://mail.google.com/mail/?realattid=f_f9wswi0x&attid=0.1&disp=attd&view=att&th=116b4c252832e041[/img]
o problema acontece quando eu filtro por um período e vou até a última (ou qualquer que não tenha no próximo passo) página, depois filtro por um período menor, é lógico que o número de páginas diminui, só que os contadores do dataScroller não reiniciam(voltam para os primeiros registros), como podem ver abaixo (página 6 de 3?), a tabela não mostra dado nenhum pois é como se estivesse na página 6 (que não existe)
[img]https://mail.google.com/mail/?realattid=f_f9wswnbf&attid=0.2&disp=attd&view=att&th=116b4c252832e041[/img]

Alguém sabe com resolver isto?

segue o código
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>

<html><head></head><body>
<f:view>
	<f:loadBundle basename="br.com.morenarosa.rel.web.util.Mensagens" var="msgs" />
	<h:form>
		<table>
			<tr> <td><h:outputText value="Periodo" styleClass="label" /></td>
				<td>
					<t:inputDate popupCalendar="true" value="#{relatorioBean.inicio}" id="inicio" />
					<h:outputText value="até" styleClass="label" /> 
					<t:inputDate popupCalendar="true" value="#{relatorioBean.fim}" id="fim" />
				</td>
			</tr>
			<tr> <td><a4j:commandButton action="#{relatorioBean.filtrar}"
					value="Filtrar" reRender="lista,painel"
					onclick="document.getElementById('load').src = 'imagens/load.gif'"
					oncomplete="document.getElementById('load').src = 'imagens/nada.gif'" />
				</td>
				<td><h:messages showDetail="true" showSummary="true"></h:messages>
				</td>
			</tr>
		</table>
	</h:form>
	<h:form id="relatorio">
		<t:panelGroup id="corpo">
			<t:dataTable var="item" value="#{relatorioBean.relatorios}"
				border="1" id="lista" rows="100">
				<h:column>
					<f:facet name="header">
						<h:outputText value="Nota" />
					</f:facet>
					<h:outputText value="#{item.documento.nota}"></h:outputText>
					<f:facet name="footer">
						<h:outputText value="Nota" />
					</f:facet>
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Vencimento" />
					</f:facet>
					<h:outputText value="#{item.documento.vencimento}">
						<f:convertDateTime locale="pt_BR" pattern="dd/MM/yyyy" />
					</h:outputText>
					<f:facet name="footer">
						<h:outputText value="Vencimento" />
					</f:facet>
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Valor" />
					</f:facet>
					<h:outputText value="#{item.documento.valor}">
						<f:convertNumber locale="pt_BR" minFractionDigits="2" maxFractionDigits="2" />
					</h:outputText>
					<f:facet name="footer">
						<h:outputText value="Valor" />
					</f:facet>
				</h:column>
			</t:dataTable>
			<t:panelGrid columns="1" id="painel">
				<t:dataScroller id="scroll_1" for="lista" firstRowIndexVar="de"
					lastRowIndexVar="ate" rowsCountVar="total" pageIndexVar="pagina"
					pageCountVar="paginas">
					<h:outputFormat value="#{msgs.dataScroller_pages}">
						<f:param value="#{de}" />
						<f:param value="#{ate}" />
						<f:param value="#{total}" />
						<f:param value="#{pagina}" />
						<f:param value="#{paginas}" />
					</h:outputFormat>
				</t:dataScroller>
				<t:dataScroller id="scroll_2" renderFacetsIfSinglePage="false"
					for="lista" fastStep="5" paginator="true" paginatorMaxPages="10"
					firstRowIndexVar="de" lastRowIndexVar="ate"
					rowsCountVar="total" pageIndexVar="pagina" pageCountVar="paginas">
					<f:facet name="first">
						<h:graphicImage url="imagens/first.gif" rendered="#{(pagina > 1)}" />
					</f:facet>
					<f:facet name="last">
						<h:graphicImage url="imagens/last.gif"
							rendered="#{(pagina < paginas)}" />
					</f:facet>
					<f:facet name="previous">
						<h:graphicImage url="imagens/next.gif" rendered="#{(pagina > 1)}" />
					</f:facet>
					<f:facet name="next">
						<h:graphicImage url="imagens/previous.gif"
							rendered="#{(pagina < paginas)}" />
					</f:facet>
					<f:facet name="fastforward">
						<h:graphicImage url="imagens/ff.gif"
							rendered="#{(pagina < paginas)}" />
					</f:facet>
					<f:facet name="fastrewind">
						<h:graphicImage url="imagens/fr.gif" rendered="#{(pagina > 1)}" />
					</f:facet>
				</t:dataScroller>
			</t:panelGrid>
		</t:panelGroup>
	</h:form>
</f:view>
</body></html>

Valew Galera.

2 Respostas

contrabando

Ninguém sabe? :cry:

contrabando

Já que ninguém pode (quis) me ajudar vai ai minha solução.

Primeiro eu fiz o que se deve fazer quando não consegue resolver alguma coisa (se tem tempo é lógico), esperei, deixei de lado e fui outra coisa (santo remédio hehehe).

Depois eu criei um HtmlDataTable (tabela) com seu “get e set”, e relacionei a tabela com o meu t:dataTable

assim toda vez que eu filtro ( ação do botão filtrar), “seto” a propriedade first para 0 (zero).

É isso ai, valew :?:

Criado 7 de dezembro de 2007
Ultima resposta 20 de dez. de 2007
Respostas 2
Participantes 1