Problema com renderização

Olá pessoa. estou com um dúvida se algum puder me ajuda…

eu tenho uma tabela que é renderizada de acordo com um campo de filtro. até ai tranquilo ela é renderizada…

o problema é quando eu tento renderizar a tabela após o usuário clicar no botão cancelar…

Segue o código…

<f:view>
		<rich:panel header="Alterar Solicitação" id="alterarSolicitacao" rendered="true">
		
			<a4j:form id="buscaSolicita">
				<h:outputText value="PRODUTO" />
				<h:inputText value="#{solicitacaoMB.solicitacao.codpro}" id="produto" />
				
				<a4j:commandButton value="Buscar" action="#{solicitacaoMB.buscarPorProduto }" reRender="altsol" />
					
			</a4j:form>

			<a4j:form id="altsol" rendered="true">
			 
				<h:message for="altsol"/>
				<rich:dataTable value="#{solicitacaoMB.listaSolPorProduto}" var="s" width="1400">

					<rich:column width="3%" style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="SOL." />
						</f:facet>
						<h:outputText value="#{s.numsol }" id="numsol" />
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="FIL." />
						</f:facet>
						<h:outputText value="#{s.filsol }" />
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="SEQ." />
						</f:facet>
						<h:outputText value="#{s.seqsol }" />
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="USUÁRIO" />
						</f:facet>
						<h:outputText value="#{s.codusu }" />
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="DATA SOL." />
						</f:facet>
						<h:outputText value="#{s.datsol }">
							<f:convertDateTime pattern="dd/MM/yyyy" />
						</h:outputText>
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="HORA" />
						</f:facet>
						<h:outputText value="#{s.horsol }" />
					</rich:column>

					<rich:column>
						<f:facet name="header">
							<h:outputText value="CODPRO" />
						</f:facet>
						<h:outputText value="#{s.codpro }" />
					</rich:column>

					<rich:column>
						<f:facet name="header">
							<h:outputText value="PRODUTO" />
						</f:facet>
						<h:outputText value="#{s.despro }" />
					</rich:column>

					<rich:column style="text-align: center;">

						<f:facet name="header">
							<h:outputText value="UN" />
						</f:facet>
						<h:outputText value="#{s.unimed }" />
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="CODDER" />
						</f:facet>
						<h:outputText value="#{s.codder }" />
					</rich:column>
					
					<rich:column>
						<f:facet name="header">
							<h:outputText value="DERIVAÇÃO" />
						</f:facet>
						<h:outputText value="#{s.desder }" />
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="PREVISÃO" />
						</f:facet>
						<h:outputText value="#{s.datprv }">
							<f:convertDateTime dateStyle="long" pattern="dd/MM/yyyy" />
						</h:outputText>
					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="QUANTIDADE" />
						</f:facet>
						<h:outputText value="#{s.qtdsol }" />

					</rich:column>

					<rich:column>
						<f:facet name="header">
							<h:outputText value="DEPÓSITO" />
						</f:facet>
						<h:outputText value="#{s.coddep }" />

					</rich:column>

					<rich:column>
						<f:facet name="header">
							<h:outputText value="OBSERVAÇÃO" />
						</f:facet>
						<h:outputText value="#{s.obssol }" />

					</rich:column>

					<rich:column>
						<f:facet name="header">
							<h:outputText value="SITUAÇÃO" />
						</f:facet>
						<h:outputText value="#{s.situacaoEmTexto}" />

					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="ALTERAÇÃO" />
						</f:facet>
						<a4j:commandButton value="ALTERAR" action="#{solicitacaoMB.editar}" status="statusAlterarSolicitacao">
							<f:setPropertyActionListener value="#{s}" target="#{solicitacaoMB.solicitacao}" />
						</a4j:commandButton>

					</rich:column>

					<rich:column style="text-align: center;">
						<f:facet name="header">
							<h:outputText value="CANCELAMENTO" />
						</f:facet>
						<a4j:commandButton value="CANCELAR" action="#{solicitacaoMB.cancelar }" status="statusAdicionarSolicitacao"
								reRender="altsol" ajaxSingle="true">
							<f:setPropertyActionListener value="#{s}" target="#{solicitacaoMB.solicitacao}" />
						</a4j:commandButton>

					</rich:column>

				</rich:dataTable>
				<rich:messages for="altsol" />

				<h:panelGrid columns="2" rendered="true" id="gridMenu">
					<a4j:commandButton value="Voltar" status="statusAlterarSolicitacao"
						action="voltar_inisol" immediate="true" />

					<a4j:commandButton value="sair" status="statusAlterarSolicitacao" action="sair" immediate="true" />
				</h:panelGrid>

			</a4j:form>

			<a4j:region>
				<div style="position: absolute; top: 75%; left: 50%;">
					<a4j:status id="statusAlterarSolicitacao">
						<f:facet name="start">
							<h:panelGrid>
								<h:column>
									<h:graphicImage value="/images/loader2.gif" />
								</h:column>
								<h:column>
									<h:outputText value="Aguarde..."
										style="text-size:30px; font-family: Arial; font-weight: bold" />
								</h:column>
							</h:panelGrid>
						</f:facet>
					</a4j:status>
				</div>
			</a4j:region>

		</rich:panel>

	</f:view>

Coloque um atributo id na sua tabela e adicione ele no atributo reRender do botão cancelar.

Não funcionou dessa forma…

<rich:dataTable value="#{solicitacaoMB.listaSolPorProduto}" var="s" width="1400" id="alterar" rendered="true">
<a4j:commandButton value="CANCELAR" action="#{solicitacaoMB.cancelar }" status="statusAdicionarSolicitacao"
								reRender="alterar" ajaxSingle="true">
				  		         <f:setPropertyActionListener value="#{s}" target="#{solicitacaoMB.solicitacao}" />
</a4j:commandButton>

o que será que está acontecendo ?

O seu action #{solicitacaoMB.cancelar }

Esta retornando o que ?

Como você esta fazendo uma requisição via AJAX talvez seja melhor você trabalhar com actionListener ou então retornar null no seu action.