Как изменить содержимое asp: Label в UpdatePanel после обновления? - PullRequest
1 голос
/ 15 ноября 2009

У меня есть ярлык asp: внутри панели обновлений, который мне нужно обновить как из серверного приложения, так и из клиентского Javascript Я могу обновить метку до первого обновления UpdatePanel, установив label.innerHTML. Сервер корректно меняет метку во время обновления панели. После обновления настройка label.innerHTML из клиентского Javascript больше не меняет значение, отображаемое в браузере.

Как найти ярлык для продолжения его обновления из Javascript после обновления UpdatePanel?

Ответы [ 2 ]

3 голосов
/ 15 ноября 2009

Ссылка на элемент DOM, который вы получили, предположительно, с помощью document.getElementById до обновления UpdatePanel, больше не действительна после обновления, поскольку метка заменяется новым элементом DOM. Поэтому вам нужно получить новую ссылку на этот элемент и установить innerHTML на эту новую ссылку.

События могут выглядеть следующим образом

  1. var label = document.getElementById('some_label'); label.innerHTML = 'abc';
  2. UpdatePanel срабатывает, заменяя метку внутри DOM
  3. label.innerHTML больше не работает. Вы должны повторить шаг 1) здесь.
2 голосов
/ 15 ноября 2009

Элемент DOM заменяется при обновлении UpdatePanel. Любые ссылки на предыдущий элемент DOM больше не используются, они ссылаются на элемент DOM, который был удален и больше не существует. Вам нужно будет найти заменяющий элемент DOM, прежде чем вы сможете получить доступ к его свойствам. Вы можете сделать это, используя document.getElementById ('label') или, с помощью jQuery, $ ('# label'), предполагая, что вы дали ему имя label.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...