Обновление метки с использованием jquery и кода - PullRequest
6 голосов
/ 01 июня 2010

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

Я обновляю ярлык так:

$myLabel.text("123");

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

Код позади:

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

Есть идеи, почему это так?

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

* 1015 хочет подарить Петербургу *

Ответы [ 4 ]

3 голосов
/ 01 июня 2010

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

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

$myLabel.text("hello");

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

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

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

var myLabel = hiddenField.Value.ToString();

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

2 голосов
/ 01 июня 2010

Элементы управления HTML, такие как метки, интервалы, элементы div, не публикуют свои значения на сервере - в то время как входные данные делают. ASP.NET поддерживает изменения в элементах управления с помощью ViewState .

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

2 голосов
/ 01 июня 2010

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

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

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

<asp:Hidden id="hiddenLabel" runat="server" />
0 голосов
/ 01 июня 2010

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

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

Обновление:

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

...