我在更新面板中有一个asp:Label,我需要从服务器应用程序和客户端Javascript更新。我可以通过设置label.innerHTML在第一次UpdatePanel刷新之前更新标签。服务器在面板更新期间正确更改标签。更新后,从客户端Javascript设置label.innerHTML不再更改浏览器中显示的值。
如何在UpdatePanel更新后找到标签以继续从Javascript更新它?
答案 0 :(得分:3)
由于标签被替换为新的DOM元素,因此在刷新之后,您在UpdatePanel刷新之前可能使用document.getElementById
获得的DOM元素的引用不再有效。因此,您需要获取对此元素的新引用,并将innerHTML设置为此新引用。
事件可能如下所示
var label = document.getElementById('some_label'); label.innerHTML = 'abc';
label.innerHTML
不再有效。你需要在这里重复步骤1)。答案 1 :(得分:2)
UpdatePanel刷新时,DOM元素正在被替换。您对前一个DOM元素的任何引用都不再可用,它们引用已删除但不再存在的DOM元素。在您能够访问其属性之前,您需要找到替换DOM元素。您可以使用document.getElementById('label')或jQuery,$('#label')来执行此操作,假设您已将其命名为label
。