У меня есть серия текстовых полей в форме. Когда пользователь вставляет числа в эти текстовые поля, выполняются вычисления и элементы управления <asp:Label>
обновляются с помощью JavaScript, чтобы отразить эти вычисления:
document.getElementById('<%=TotalLoans.ClientID %>').innerHTML = TotalLoans;
Это правильно обновляет пользовательский интерфейс. Однако, когда я пытаюсь получить доступ к значению в коде, свойство 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);
Как обновить свойство Text
<asp:Label>
через JavaScript таким образом, чтобы я мог прочитать свойство в коде?
Update
Это небольшая проблема в большой форме, содержащей 41 ярлык, каждый из которых отображает результаты некоторых вычислений для пользователя. По совету FishBasketGordo я преобразовал <asp:Label>
в отключенную <asp:TextBox>
. Я устанавливаю значение нового текстового поля как такового:
document.getElementById('<%=TotalLoans.ClientID %>').value = TotalLoans;
Опять же, в кодовом коде значение TotalLoans.Text
всегда равно "".
Я не возражаю против того, как я к этому подхожу, но здесь суть дела.
Я использую JavaScript для управления значениями свойств некоторых элементов управления. Мне нужно иметь доступ к этим управляемым значениям из кода, когда нажата кнопка "Отправить".
Любой совет, как я могу это сделать?
Обновление 2
Что касается ответа @James Johnson, я не могу получить значение, используя свойство .innerText
, как было предложено. У меня EnableViewState
установлено значение true на <asp:Label>
. Есть ли что-то еще, что мне не хватает?
Я не понимаю, почему, когда я печатаю текстовое поле и отправляю форму, я могу получить доступ к значению в коде, но когда я программно меняю текст текстового поля или метки с помощью JavaScript, я не могу получить доступ новое значение.