Обновление маркировки с помощью jQuery и кода позади

У меня есть маркировка на странице, и я обновляю текстовое свойство маркировки (с расчетным значением), когда текст изменяется в текстовом поле.

Я обновляю маркировку как так:

$myLabel.text("123");

Текст отображается правильно на экране butwhen, я пытаюсь сохранить текстовое значение к объекту в коде позади (Когда я нажимаю кнопку), текстовое свойство маркировки "" а не "123".

Код позади:

var myLabel = myLabel.Text;
//the var myLabel is "" when it should be "123"

Какие-либо идеи относительно того, почему это было бы?

Заранее спасибо,

Столкновения

6
задан Daniel Dyson 1 June 2010 в 12:36
поделиться

4 ответа

Почему бы вам не проверить значение, введенное в текстовое поле. судя по вашему описанию, он должен быть таким же, и он будет доступен. В противном случае, я думаю, вам нужно опубликовать еще код, чтобы прояснить, что вы делаете.

Значение текста метки необходимо сохранить во ViewState, иначе оно будет перезаписано при обратной передаче, инициированной нажатием кнопки.

Один из вариантов - также изменить значение скрытого элемента управления. Любые изменения этого значения будут доступны в коде при обратной передаче.

<asp:Hidden id="hiddenLabel" runat="server" />
2
ответ дан 17 December 2019 в 00:03
поделиться

В какую функцию вы помещаете var myLabel = myLabel.Text; ?

Это не будет работать в функции init - вам нужно указать страницу время для загрузки из состояния просмотра. Лучшее в обработчике событий нажатия кнопки.

Обновление:

Вам нужно использовать элемент управления вводом формы (например, TextBox), а не метку. Этикетки доступны только для чтения.

0
ответ дан 17 December 2019 в 00:03
поделиться

Элементы управления Html, такие как labels, spans, divs, не отправляют свои значения на сервер - в то время как inputs отправляют. ASP.NET сохраняет изменения в элементах управления с помощью ViewState.

Когда вы изменяете значение элемента управления на сервере, его состояние часто сохраняется там. Если вы изменяете значение на стороне клиента с помощью JavaScript, ViewState не изменяется, и поэтому при PostBack вы получаете исходное значение Empty.

2
ответ дан 17 December 2019 в 00:03
поделиться

Не уверен, что это правильный способ, но я обошел проблема с использованием скрытого поля.

Я обновил текст метки, как указано выше:

$myLabel.text("hello");

, но затем я обновил значение скрытого поля:

$('#<%= hiddenField.ClientID %>').val("hello");

Затем я смог использовать скрытое поле в коде позади:

var myLabel = hiddenField.Value.ToString();

Кажется, это работает нормально.

3
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: