2009-11-15 95 views
1

我有一个更新面板中的asp:Label,我需要从服务器应用程序和客户端Javascript进行更新。我可以通过设置label.innerHTML在第一次UpdatePanel刷新之前更新标签。服务器在面板更新期间正确更改标签。更新后,从客户端Javascript设置label.innerHTML不再更改浏览器中显示的值。如何在更新后更改UpdatePanel中的asp:Label内容?

如何在UpdatePanel更新后找到标签以继续从Javascript更新它?

回答

3

由于标签被替换为新的DOM元素,所以在UpdatePanel刷新在刷新后不再有效之前,您获得的对DOM元素的引用可能是document.getElementById。因此,您需要获取对此元素的新引用,并将innerHTML设置为此新引用。

事件可能是这样的

  1. var label = document.getElementById('some_label'); label.innerHTML = 'abc';
  2. 的UpdatePanel是trigerred它取代内部的DOM
  3. label.innerHTML不再适用于标签。你需要在这里重复步骤1)。
2

当UpdatePanel刷新时,DOM元素将被替换。任何对前一个DOM元素的引用都不再可用,它们引用已删除且不再存在的DOM元素。您需要先找到替换的DOM元素,然后才能访问其属性。您可以使用document.getElementById('label')或使用jQuery $('#label')来做到这一点,假设您已经给它起了名字label