【问题标题】:How to change asp:Label content in UpdatePanel after update?更新后如何更改更新面板中的 asp:Label 内容?
【发布时间】:2009-11-15 13:15:21
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net updatepanel label


    【解决方案1】:

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

    事件可能如下所示

    1. var label = document.getElementById('some_label'); label.innerHTML = 'abc';
    2. UpdatePanel 被触发,它替换了 DOM 中的标签
    3. label.innerHTML 不再有效。您需要在此处重复步骤 1)。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-08
        • 2010-10-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多