Perdendo evento ao renderizar só alguns campos de datatable com colunas dinâmicas

Boa tarde,

Tenho um código um pouquinho complexo. Tenho um datatable baseado em uma List<LinkedHashMap<String, Object>>. Neste datatable, tenho algumas colunas fixas, e outras dinâmicas. Estas colunas dinâmicas possuem campos texto que recebem valores. Ao sair destes campos texto, é preciso fazer um cálculo totalizador e atualizar outro campo que fica no cabeçalho, também dinâmico.

Nos meus campos textos que recebem valores, coloco um evento para ser executado no onchange e renderizar: os campos do cabeçalho, e o proprio campo.

Da primeira vez, funciona perfeito: chama o evento, atualiza o campo correto, beleza. Só que aí é como se o evento parasse de existir: em todos os campos quando altero, ele nem chama o evento ao sair. Não é que chama e não atualiza: coloquei um breakpoint no método e realmente o evento nem é chamado.

A única forma que consegui de fazer ele ser chamado foi dando rerender no datatable inteiro. Mas isso é muito complicado, porque perde o foco do campo, perde o amarelinho da linha, tem que rerenderizar uma tabela enorme… e outras coisas mais.

Então a pergunta é se alguém consegue enxergar algum problema no meu código, que esteja fazendo este evento se perder. Porque eu gostaria que ele não se perdesse pra eu não precisar dar rerender na tabela inteira, pois ela pode ter mais de 300 linhas e 40 colunas.

Vai abaixo o código:

[code] <rich:dataTable id=“tabela” value="#{monitoramentoManagedBean.linhasMonitoramento}"
var=“model” width=“950” rows = “40” rowKeyVar=“rowLista”
onRowClick=“selecionarLinha(this);linhaClicou(this);” >

						<rich:column> 
						
				                <f:facet name="header">
				                        Localidade 
				                        <br></br><br></br>
				                        <div align="left">
				                        <font size="1" color="#0000CC">*Para inserir um comentário, <br></br>clique na localidade desejada.</font>
				                        </div>
				                </f:facet>

								<a4j:commandLink value="" onclick="Richfaces.showModalPanel('comentarios');" 
								style="color: black;text-decoration:none;" reRender="comentariosPanel">
								
								<f:setPropertyActionListener value="#{model.monexercicio.comentarios}"
									target="#{monitoramentoManagedBean.comentarioAtual}" />
									
								<f:setPropertyActionListener value="#{rowLista}"
									target="#{monitoramentoManagedBean.localidadePosicao}" />
									
									<h:outputText value="#{model.localidade.nome}" style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 9px;" 
										rendered="#{monitoramentoManagedBean.instancia.produtoMonitorado.nivelDetalhamento != 'T'}" />						
										
									<h:outputText value="#{model.localidade.descricao}" style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 9px;" 
										rendered="#{monitoramentoManagedBean.instancia.produtoMonitorado.nivelDetalhamento == 'T'}" />
									
								</a4j:commandLink>	
	

								<br></br><br></br>	
								<h:outputText value="Situação: " style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 9px;" />
								
								<br></br>
							
								<h:selectOneMenu
								value="#{model.monexercicio.situacao}"
								disabled="#{monitoramentoManagedBean.modoExclusao or monitoramentoManagedBean.modoLeitura}"
								id="txtSituacaoCombo" style="white-space:pre" onclick="ondeClicou(this.id);">
								<f:selectItem itemLabel=" -- Selecione -- " itemValue="" />
								<f:selectItems
									value="#{monitoramentoManagedBean.situacaoComboBox.entidades}"
									style="white-space:pre" />
								</h:selectOneMenu>	
								
								<h:inputText size="1" value="#{model.monexercicio.comentarios}" style="visibility:hidden;"/> 

						</rich:column>
					
				        <rich:columns value="#{monitoramentoManagedBean.listaCabecalho}" var="columns" index="ind" align="center" >
				                <f:facet name="header">
				                <h:panelGroup>
				                
									<h:outputText value="#{columns.mes} / #{columns.ano}"
				                           style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 9px;font-weight:bold;" />
				                    <br></br>
				                      
				                    <h:outputText value="Saldo Liquidado:" 
				                        style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 9px;font-weight:bold;" 
				                        rendered="#{monitoramentoManagedBean.instancia.produtoMonitorado.existeFinanceiro == 'S'}" />

<h:inputText size=“10” value="#{columns.saldoLiquidado}"
disabled="#{!monitoramentoManagedBean.empresa}"
rendered="#{monitoramentoManagedBean.instancia.produtoMonitorado.existeFinanceiro == ‘S’}"
id=“txtLiquidado#{ind}”>

<f:converter converterId=“ConversorBigDecimal” id=“ConversorBigDecimal” />
</h:inputText>

				                    <h:outputText value="Saldo a distribuir:" 
				                        	rendered="#{!monitoramentoManagedBean.empresa and monitoramentoManagedBean.instancia.produtoMonitorado.existeFinanceiro == 'S'}"
				                        	style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 9px;font-weight:bold;"
				                        	/>

<h:inputText size=“10” value="#{columns.saldoDistribuir}"
rendered="#{!monitoramentoManagedBean.empresa and monitoramentoManagedBean.instancia.produtoMonitorado.existeFinanceiro == ‘S’}" disabled=“true”
id=“txtDistribuido#{ind}”>
<f:converter converterId=“ConversorBigDecimal” id=“ConversorBigDecimal” />
</h:inputText>


									<a4j:commandButton
											value="Distribuição automática" 
											style="width: 130px; font-size: 11px;"
											reRender="tabela"
											onclick="javascript:Richfaces.showModalPanel('confirmacao')"
											rendered="#{monitoramentoManagedBean.instancia.produtoMonitorado.existeFinanceiro == 'S'}"	
											>
											<f:setPropertyActionListener target="#{monitoramentoManagedBean.monApoioDistribuicao}" value="#{columns}" />
									</a4j:commandButton>							                        
				                </h:panelGroup>  
				                </f:facet>      
				                <h:panelGrid columns="2" styleClass="celulaPanel" >  
					                <h:outputText value="Físico" style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 10px;" />
					                <h:outputText value="Financeiro" style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 10px;" 
					                	rendered="#{monitoramentoManagedBean.instancia.produtoMonitorado.existeFinanceiro == 'S'}"/>
									
									
									<h:inputText value="#{model.listaMonitoramento[ind].quantidade}"
										size="8" style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 10px;"
										maxlength="10" 
										id="txtFisico#{ind}">
										<f:converter converterId="ConversorBigDecimalUmaCasa" id="ConversorBigDecimalUmaCasa" />
										
									[b]	<a4j:support event="onchange" reRender="txtLiquidado#{ind},txtDistribuido#{ind},txtFisico#{ind}"
											action="#{monitoramentoManagedBean.atualizar}"
											 />	[/b]
									
									</h:inputText>							                
									<h:inputText value="#{model.listaMonitoramento[ind].valor}" 
											size="13" style="font-family: Arial, Helvetica, Verdana, sans-serif;font-size: 10px;"
											disabled="#{((columns.saldoLiquidado == 0 and !monitoramentoManagedBean.empresa) and (model.listaMonitoramento[ind].valor ==0 or model.listaMonitoramento[ind].valor == null)) }"
											id="txtFinan#{ind}"
											>
										[b]<a4j:support event="onchange" reRender="txtLiquidado#{ind},txtDistribuido#{ind},txtFinan#{ind}"
											action="#{monitoramentoManagedBean.atualizar}" 
											/>[/b]
											
										
									</h:inputText>
									<br></br>
								</h:panelGrid>
				        </rich:columns>	

					<f:facet name="footer">
						<rich:datascroller align="center" ajaxSingle="true" limitToList="true"  
							id="paginador" />
					</f:facet>

				</rich:dataTable>  [/code]

Se eu puder deixar mais alguma coisa clara, por favor me falem.

Agradeço qualquer ajuda.

Ninguém?