后的ID。查找编译
但是经过该网站已编译和运行在HTML变化的东西多一点abscure
<asp:Label runat="server" ID="ct100_blahblah_what_mylabel" Text="some text"></asp:Label>
ID和我不能(不知道如何)可靠地预测这将是什么选择它与JavaScript。
有没有办法向服务器询问该标签的ID在任何特定时刻?
什么是一些关键字可以用来找出更多关于这种现象?
后的ID。查找编译
但是经过该网站已编译和运行在HTML变化的东西多一点abscure
<asp:Label runat="server" ID="ct100_blahblah_what_mylabel" Text="some text"></asp:Label>
ID和我不能(不知道如何)可靠地预测这将是什么选择它与JavaScript。
有没有办法向服务器询问该标签的ID在任何特定时刻?
什么是一些关键字可以用来找出更多关于这种现象?
您需要ClientID
属性。这包含运行时控件的生成标识。您可以在后面的代码中发出一些JavaScript,将控件的客户端ID设置为JavaScript变量,以便引用它。
编辑:添加例子
下会发现使用客户端ID标签,然后更新它的文本。
<html> <body> <asp:Label runat="server" ID="mylabel" Text="some text"></asp:Label> <script language="javascript"> var mylabelID = "<%= mylabel.ClientID %>"; var label = document.getElementById(mylabelID); label.innerHTML += " changed"; </script> </body> </html>
请问我能举个例子吗? – aggitan 2009-06-21 22:32:22
我相信你正在寻找ClientID
属性。
的
ClientID
值经常用于 编程访问呈现在 客户端脚本的控制的HTML 元件。
你的另一种选择是包装你控制在一个像这样的HTML元素:
<span id="foo">
<asp:Label runat="server" ID="mylabel" Text="some text"></asp:Label>
</span>
由于这个外部因素不具备runat="server"
属性,它的ID不会被渲染上的改变。这将意味着你的JavaScript函数将不得不改变,从跨度foo
拉的内部元件,或者如果您正在使用像jQuery JavaScript框架,你可以拉标签背面是这样的:
$("span#foo span");
我可以举个例子吗? – aggitan 2009-06-21 22:33:02
这是该死的烦人,我一直受到这个自己。正如答案所指出的那样,您需要为此使用ClientID。我所做的是每当需要获取特定控件元素ID时,使用<%= control.ClientID%>块。令人遗憾的是非常繁琐,并且几乎没有一个好的解决方案,但可能是唯一的解决方案。 – Skurmedel 2009-06-21 22:37:59