Как получить доступ к буквальному контролю в JavaScript - PullRequest
0 голосов
/ 09 февраля 2010

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

Мой код в JavaScript (но не работает):

 lths = document.getElementById("<%= lblhs.ClientID %>");
 lths.innerHTML = 'this is text line"

Ответы [ 4 ]

5 голосов
/ 09 февраля 2010

Вы можете найти его с помощью document.getElementById('<%= myControl.ClientID %>') или, если вы используете .NET 4.0, вы можете напрямую установить поле идентификатора, которое будет извлекаться с помощью javascript. В качестве альтернативы вы можете использовать селекторы jquery . Ваш код не работает, потому что элемент управления Literal не отображается как элемент, просто статический текст. Вы можете разместить вокруг него промежуток или использовать элемент управления Label, который будет отображаться как промежуток для вас.

3 голосов
/ 09 февраля 2010

Я не думаю, что вы можете получить доступ к буквальному элементу управления из своего клиентского кода javascript, потому что буквальный элемент управления просто отображает его чистое значение без каких-либо окружающих тегов.Таким образом, у вас нет элемента, который вы можете получить по идентификатору.

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

Другой вариант - записать тег span или div в элемент управления вашего литерала на стороне сервера следующим образом:клиент, вы можете выбрать элемент с помощью:

var myDiv = document.getElementById('myDiv');
1 голос
/ 09 февраля 2010

Просто чтобы исключить очевидное (поскольку никто не упомянул об этом), это синтаксическая ошибка в JS:

lths.innerHTML = 'this is text line"

Не уверен, была ли это ошибка при печати или вы скопировали ее из своего кода. Вы можете использовать " или ', но не оба, чтобы окружить строку. Кроме того, вы должны использовать завершающие точки с запятой в качестве наилучшей практики (хотя это и не обязательно).

lths.innerHTML = 'this is text line';
0 голосов
/ 09 февраля 2010

Техника <%= myControl.ClientId %> не работает при использовании главных страниц. Это может быть так. Что вы можете сделать: взять скрытое поле. Сохраните идентификатор метки в скрытом поле. Откройте атрибут value, чтобы получить идентификатор, а затем используйте document.getElementByID('HiddenField.Value'), чтобы получить элемент управления.

...