Problema em atualizar campo

olá galera seguinte tenho um dataTable com row edit… esta funcionando certo só q toda vez q eu atualizo algum campo com row edit ele não atualiza o campo valor total…

<h1>
					Total:
					<h:outputLabel
						value="#{ordemDeServicoBean.ordemDeServico.valorTotal}" id="total" />
				</h1>[/code]


o que posso fazer?

aki esta meu codigo inteiro

[code]<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Editar Ordem de Serviço</title>
</h:head>
<h:body>
	<h:form id="form" enctype="multipart/form-data" update=":form:total, itensList">
		<div align="center">

			<p:panel header="Solicitação De Ordem De Serviço" style="width:1050px">
					<ui:include src="/paginas/Menu.xhtml" />

				<h:inputHidden	value="#{ordemDeServicoBean.ordemDeServico.idOrdemDeServico}" />

				<p:panel>

					<h:panelGrid columns="2" cellpadding="2">
						<h:outputLabel value="Data Abertura" />
						<p:calendar
							value="#{ordemDeServicoBean.ordemDeServico.dataAbertura}"
							pattern="dd/MM/yyyy" required="true" />
					</h:panelGrid>

					<h:panelGrid columns="4" cellpadding="2">
						<h:outputLabel value="Cliente " />
						<p:inputText value="#{ordemDeServicoBean.pessoa.nome}" />
						<p:commandButton type="button" value="Pesquisar"
							onclick="dlg.show()" />

						<p:dialog header="Pesquisar Cliente" widgetVar="dlg"
							resizable="false" width="1000" height="300" hideEffect="explode" showEffect="explode" modal="true">

							<p:dataTable var="pessoa" value="#{pessoaBean.listPessoa}"
								widgetVar="pessoaTable"
								emptyMessage="Nenhum pessoa Encontrado Nessas Condições" rowStyleClass="#{empty rowIx or rowIx
 mod 2 ne 0 ? 'even-row' : 'odd-row'}"
 rowIndexVar="rowIx">

								<f:facet name="header">
									<p:outputPanel>
										<h:outputText value="Procurar em todos os campos:" />
										<p:inputText id="globalFilter" onkeyup="pessoaTable.filter()"
											style="width:150px" />
									</p:outputPanel>
								</f:facet>

								<p:column filterBy="#{pessoa.idPessoa}" headerText="Id"
									footerText="Id" filterMatchMode="contains">
									<h:outputText value="#{pessoa.idPessoa}" />
								</p:column>

								<p:column filterBy="#{pessoa.nome}" headerText="Nome"
									footerText="Nome" filterMatchMode="contains">
									<h:outputText value="#{pessoa.nome}" />
								</p:column>


								<p:column filterBy="#{pessoa.fone}" headerText="Fone"
									footerText="Fone" filterMatchMode="contains">
									<h:outputText value="#{pessoa.fone}" />
								</p:column>


								<p:column filterBy="#{pessoa.celular}" headerText="Celular"
									footerText="Celular" filterMatchMode="contains">
									<h:outputText value="#{pessoa.celular}" />
								</p:column>

								<p:column filterBy="#{pessoa.tipo}" headerText="Tipo"
									footerText="Tipo" filterMatchMode="contains">
									<h:outputText value="#{pessoa.tipo}" />
								</p:column>

								<p:column style="width:100px">
									<h:panelGrid columns="4" styleClass="actions" cellpadding="4">

										<h:commandButton title="Selecionar "
											image="/imagens/icones/ok.gif"
											action="#{ordemDeServicoBean.selecionarPessoa}">
											<f:setPropertyActionListener value="#{pessoa.idPessoa}"
												target="#{ordemDeServicoBean.pessoa.idPessoa}" />
										</h:commandButton>

									</h:panelGrid>
								</p:column>
							</p:dataTable>

						</p:dialog>

						<h:outputLabel value="Técnico " />
						<p:inputText value="#{ordemDeServicoBean.funcionario.nome}" />
						<p:commandButton type="button" value="Pesquisar"
							onclick="dlg1.show()" />

						<p:dialog header="Pesquisar Técnico" widgetVar="dlg1"
							resizable="false" width="1000" height="300" hideEffect="explode" showEffect="explode" modal="true">

							<p:dataTable var="funcionario"
								value="#{funcionarioBean.listFuncionario}"
								widgetVar="funcionarioTable"
								emptyMessage="Nenhum funcionario Encontrado Nessas Condições" rowStyleClass="#{empty rowIx or rowIx
 mod 2 ne 0 ? 'even-row' : 'odd-row'}"
 rowIndexVar="rowIx">

								<f:facet name="header">
									<p:outputPanel>
										<h:outputText value="Procurar em todos os campos:" />
										<p:inputText id="globalFilter"
											onkeyup="funcionarioTable.filter()" style="width:150px" />
									</p:outputPanel>
								</f:facet>

								<p:column filterBy="#{funcionario.idFuncionario}"
									headerText="Id" footerText="Id" filterMatchMode="contains">
									<h:outputText value="#{funcionario.idFuncionario}" />
								</p:column>

								<p:column filterBy="#{funcionario.nome}" headerText="Nome"
									footerText="Nome" filterMatchMode="contains">
									<h:outputText value="#{funcionario.nome}" />
								</p:column>

								<p:column filterBy="#{funcionario.cpf}" headerText="Cpf"
									footerText="Cpf" filterMatchMode="contains">
									<h:outputText value="#{funcionario.cpf}" />
								</p:column>

								<p:column filterBy="#{funcionario.celular}" headerText="Celular"
									footerText="Celuar" filterMatchMode="contains">
									<h:outputText value="#{funcionario.celular}" />
								</p:column>

								<p:column filterBy="#{funcionario.login}" headerText="Login"
									footerText="Login" filterMatchMode="contains">
									<h:outputText value="#{funcionario.login}" />
								</p:column>

								<p:column style="width:100px">
									<h:panelGrid columns="3" styleClass="actions" cellpadding="3">

										<h:commandButton title="Selecionar "
											image="/imagens/icones/ok.gif"
											action="#{ordemDeServicoBean.selecionarFuncionario}">
											<f:setPropertyActionListener
												value="#{funcionario.idFuncionario}"
												target="#{ordemDeServicoBean.funcionario.idFuncionario}" />
										</h:commandButton>

									</h:panelGrid>
								</p:column>
							</p:dataTable>


						</p:dialog>
					</h:panelGrid>

					<h:panelGrid columns="5" cellpadding="2">
						<h:outputLabel value="Serviços / Produtos" />
						<p:inputText value="#{ordemDeServicoBean.tipoDeServico.descricao}" />


						<p:commandButton type="button" value="Pesquisar"
							onclick="dlg2.show()" />

						<p:dialog header="Pesquisar Serviço / Produtos" widgetVar="dlg2"
							resizable="false" width="1000" height="300" hideEffect="explode" showEffect="explode" modal="true">

							<p:dataTable var="tipoDeServico"
								value="#{ordemDeServicoBean.listTipoDeServico}"
								widgetVar="tipoDeServicoTable"
								emptyMessage="Nenhum Servico Encontrado Nessas Condições" rowStyleClass="#{tipoDeServico.tipo == 'Produto' ? 'produto' : null} #{tipoDeServico.tipo == 'Servico' ? 'servico' : null} "
						rowIndexVar="rowIx">

								<f:facet name="header">
									<p:outputPanel>
										<h:outputText value="Procurar em todos os campos:" />
										<p:inputText id="globalFilter"
											onkeyup="tipoDeServicoTable.filter()" style="width:150px" />
									</p:outputPanel>
								</f:facet>

								<p:column filterBy="#{tipoDeServico.idTipoDeServico}"
									headerText="Id" footerText="Id" filterMatchMode="contains">
									<h:outputText value="#{tipoDeServico.idTipoDeServico}" />
								</p:column>
								
								<p:column filterBy="#{tipoDeServico.descricao}"
									headerText="Descrição" footerText="Descrição"
									filterMatchMode="contains">
									<h:outputText value="#{tipoDeServico.descricao}" />
								</p:column>								
								
								<p:column filterBy="#{tipoDeServico.tipo}"
									headerText="Tipo" footerText="Tipo"
									filterMatchMode="contains">
									<h:outputText value="#{tipoDeServico.tipo}" />
								</p:column>

								<p:column filterBy="#{tipoDeServico.valor}" headerText="Valor"
									footerText="Valor" filterMatchMode="contains">
									<h:outputText value="#{tipoDeServico.valor}" />
								</p:column>

								<p:column style="width:100px">
									<h:panelGrid columns="1" styleClass="actions" cellpadding="2">

										<h:commandButton title="Selecionar "
											image="/imagens/icones/ok.gif"
											action="#{ordemDeServicoBean.selecionarTiposDeServico}">
											<f:setPropertyActionListener
												value="#{tipoDeServico.idTipoDeServico}"
												target="#{ordemDeServicoBean.tipoDeServico.idTipoDeServico}" />
										</h:commandButton>

									</h:panelGrid>
								</p:column>
							</p:dataTable>

						</p:dialog>


						<p:commandButton value="Adicionar"
							action="#{ordemDeServicoBean.adicionarServico}" ajax="false" />


					</h:panelGrid>
				</p:panel>




				<p:growl id="messages1" showDetail="true" />
				<p:dataTable var="itensDeServico"
					value="#{ordemDeServicoBean.listTiposDeServico}" id="itensList"
					rowEditListener="#{ordemDeServicoBean.update}" style="width:1017px" update="itensList, total">

					<f:facet name="header">  
            Serviços Prestados / Produtos
        </f:facet>

					<p:column headerText="Descrição" style="width:125px">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{itensDeServico.tipoDeServico.descricao}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{itensDeServico.tipoDeServico.descricao}"
									style="width:100%" />
							</f:facet>
						</p:cellEditor>
					</p:column>
					
					<p:column headerText="Tipo" style="width:125px">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{itensDeServico.tipoDeServico.tipo}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{itensDeServico.tipoDeServico.tipo}"
									style="width:100%" />
							</f:facet>
						</p:cellEditor>
					</p:column>

					<p:column headerText="Quantidade" style="width:125px">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{itensDeServico.quantidade}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{itensDeServico.quantidade}"
									style="width:100%" />
							</f:facet>
						</p:cellEditor>
					</p:column>

					<p:column headerText="Subtotal" style="width:125px">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{itensDeServico.subtotal}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{itensDeServico.subtotal}"
									style="width:100%" />
							</f:facet>
						</p:cellEditor>
					</p:column>

					<p:column headerText="Opções" style="width:50px">
						<p:rowEditor />
					</p:column>

				</p:dataTable>
				<p:commandButton value="Atualizar"
					action="#{ordemDeServicoBean.update}" ajax="false"/>
				<h1>
					Total:
					<h:outputLabel
						value="#{ordemDeServicoBean.ordemDeServico.valorTotal}" id="total" />
				</h1>
			</p:panel>
		</div>

		<style type="text/css">
h1 {
	color: red;
}
.ui-datatable .ui-datatable-data .even-row td {
	background-color: #fcefa1;
	border-right: solid 0px #4e6769;
}

.ui-datatable .ui-datatable-data .odd-row td {
	background-color: #f7f7f7;
	border-right: solid 0px #4e6769;
}
.ui-datatable .ui-datatable-data .servico td {
	background-color: #FFFF00;
	border-right: solid 0px #4e6769;
}

.ui-datatable .ui-datatable-data .produto td {
	background-color: #00FF00;
	border-right: solid 0px #4e6769;
}

</style>
	</h:form>
</h:body>
</html>