フォームに一連のテキストボックスがあります。ユーザーがこれらのテキストボックスに数値を挿入すると、計算が行われ、<asp:Label>
JavaScriptを介してコントロールが更新され、これらの計算が反映されます。
document.getElementById('<%=TotalLoans.ClientID %>').innerHTML = TotalLoans;
これにより、UIが正しく更新されます。ただし、コードビハインドの値にアクセスしようとすると、Text
プロパティが空になります。innerHTML
JavaScriptを介してプロパティを更新していたので、これは理にかなっています。
//TotalLoans.Text will always be equal to "" in this scenario
double bTotalLoans = string.IsNullOrEmpty(TotalLoans.Text)
? 0.00
: Convert.ToDouble(TotalLoans.Text);
コードビハインドでプロパティを読み取れるように、JavaScript経由でText
プロパティを更新するにはどうすればよいですか?<asp:Label>
アップデート
これは、41個のラベルを含む大きなフォームでの小さな問題であり、各ラベルにはユーザーの計算結果が表示されます。FishBasketGordoのアドバイスを受けて、私は自分<asp:Label>
を障害者に変えました<asp:TextBox>
。新しいテキストボックスの値を次のように設定しています。
document.getElementById('<%=TotalLoans.ClientID %>').value = TotalLoans;
繰り返しますが、コードビハインドでは、の値TotalLoans.Text
は常に「」に等しくなります。
私はこれにアプローチする方法を変更してもかまいませんが、ここに問題の核心があります。
一部のコントロールのプロパティ値を操作するためにJavaScriptを使用しています。[送信]をクリックすると、コードビハインドからこれらの操作された値にアクセスできる必要があります。
私がこれについてどうやって行くことができるかアドバイスはありますか?
アップデート2
@James Johnsonの回答に関しては、.innerText
提案されているようにプロパティを使用して値を取得することはできません。EnableViewState
でtrueに設定しました<asp:Label>
。他に足りないものはありますか?
テキストボックスに入力してフォームを送信すると、コードビハインドの値にアクセスできる理由がわかりませんが、JavaScriptを使用してテキストボックスまたはラベルのテキストをプログラムで変更すると、新しい値にアクセスできません。 。