Defina a propriedade Text do asp: label no modo Javascript PROPER
Eu tenho uma série de caixas de texto em um formulário. Quando o usuário insere números nessas caixas de texto, os cálculos são feitos e<asp:Label>
controles são atualizados via JavaScript para refletir esses cálculos:
<code>document.getElementById('<%=TotalLoans.ClientID %>').innerHTML = TotalLoans; </code>
Isso atualiza corretamente a interface do usuário. No entanto, quando tento acessar o valor no codebehind, oText
a propriedade está vazia. Isso faz sentido, eu acho, já que eu estava atualizandoinnerHTML
propriedade através do JavaScript.
<code>//TotalLoans.Text will always be equal to "" in this scenario double bTotalLoans = string.IsNullOrEmpty(TotalLoans.Text) ? 0.00 : Convert.ToDouble(TotalLoans.Text); </code>
Como faço para atualizar oText
propriedade do<asp:Label>
via JavaScript de tal forma que eu possa ler a propriedade no codebehind?
Este é um pequeno problema em um formulário grande que contém 41 rótulos, cada um dos quais exibe os resultados de alguns cálculos para o usuário. Tomando o conselho de FishBasketGordo eu converti meu<asp:Label>
para um deficiente<asp:TextBox>
. Estou definindo o valor da nova caixa de texto como tal:
<code> document.getElementById('<%=TotalLoans.ClientID %>').value = TotalLoans; </code>
Mais uma vez, no codebehind, o valor deTotalLoans.Text
é sempre igual a "".
Eu não me importo em mudar como eu me aproximo disso, mas aqui está o cerne da questão.
Eu estou usando JavaScript para manipular os valores de propriedade de alguns controles. Eu preciso ser capaz de acessar esses valores manipulados do código por trás quando 'Enviar' é clicado.
Algum conselho sobre como posso fazer isso?
Atualização 2Em relação à resposta de @James Johnson, não consigo recuperar o valor usando.innerText
propriedade como sugerido. eu tenhoEnableViewState
definido como verdadeiro no<asp:Label>
. Há mais alguma coisa que eu estou sentindo falta?
Não entendo por que, quando eu digito uma caixa de texto e envio o formulário, posso acessar o valor no codebehind, mas quando altero programaticamente o texto de uma caixa de texto ou rótulo por meio de JavaScript, não consigo acessar o novo valor .