从内容页面访问主页面中的控件

时间:2014-03-12 17:22:44

标签: javascript asp.net master-pages content-pages

我正在尝试使用像这样的

来从内容页面(Asp.net)访问主页面中的控件
alert(document.getElementById('<%=((Label)Master.FindControl("lbl")).ClientID %>').value);
主页面中的

控件如下,

 <asp:Label ID="lbl" runat="server" Text="one"></asp:Label>

但不幸的是它没有用。我得到了未定义的值

5 个答案:

答案 0 :(得分:1)

我注意到您实际上正在访问.value控件生成的元素的<asp:Label />字段,即<span></span>。这种类型的元素不会返回.value属性的任何内容。如果您确实尝试访问其文本,请使用:

alert(document.getElementById('<%=((Label)Master.FindControl("lbl")).ClientID %>').innerText);

alert(document.getElementById('<%=((Label)Master.FindControl("lbl")).ClientID %>').innerHTML);

答案 1 :(得分:1)

问题是母版页是命名容器,因此控件的客户端ID接收前缀,该前缀是命名容器的id。 使用JavaScript,它很容易解决:

var elm = document.querySelector('[id$="lbl"]');

$ =表示,以。结尾。

答案 2 :(得分:0)

在您的网页中加入jQuery并使用此脚本:

<script>
$(document).ready(function(){
    alert($("#lbl").text());
});
</script>

答案 3 :(得分:0)

这对我有用:(检查以下代码)

alert(document.getElementById('<%=(Master.FindControl("lbl")).ClientID %>').innerText);

答案 4 :(得分:0)

使用updateNotices(1)对我不起作用。可以使用以下代码:

getElementById