【发布时间】:2018-02-28 20:14:00
【问题描述】:
在从 Javascript 部分回发后,我正在尝试更新母版页上用户控件中的标签。我遇到的问题实际上是访问控件。
母版页上的用户控件如下所示:
<uc:Header runat="server" ID="Header1" ClientIDMode="Static" />
用户控件的 HTML 如下所示:
<asp:Panel ID="pnlHeader" runat="server" CssClass="page-head">
<h2>
<asp:Label ID="lblTitle" runat="server" Text="Title"></asp:Label></h2>
在我的 Javascript 中,我使用以下方法捕获部分回发:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(updateHeader);
function updateHeader() {
alert(document.getElementById('<%=(Master.FindControl("Header1")).ClientID %>'));
}
Header1 返回 null。非常感谢任何帮助!
【问题讨论】:
-
什么时候加载 ,这是一个剃刀服务器端请求,它只能在服务器端渲染期间填充,
-
这是网络表单而不是 MVC。页面加载时加载母版页。问题是我需要更改部分回发的标签。
-
Header1 是一个用户控件,它没有被渲染;内容是渲染。这就是为什么 Header1 为空,即未找到。看看源代码html。 JavaScript 看不到它。您可以给 lblTitle 一个 cssclass 的标题,然后通过 javascript 处理它: document.getElementsByClassName("title")[0].innerHTML);
标签: javascript asp.net webforms