在实际开发过程中,我们会把一些控件放在容器中,这样生成出来的页面上容器中的控件id就会自动生成前缀+控件id,如果不注意就会导致js获取的时候出现错误。
通过网上查到的资料可以用document.getElementById("<%=btn.ClientID %>")来动态的获取容器中变动的控件id(btn是本来控件的id,btn.ClientID是变化之后的控件id)。
但是如果把该代码放在<head runat="server">中执行,就会报错(控件包含代码块(即 <% ... %>),因此无法修改控件集合。)。
通过相应的文档得出结论是<% %>不能在runat="server"中,博主实际中用到的解决方法是1.
解决方法:
1、把<head>节点中的runat="server"去掉
2、js不要写在<head>节点中
本文探讨了在ASP.NET开发中,如何解决容器内控件ID动态变化带来的问题,介绍了使用document.getElementById结合控件ClientID属性的正确方法,并提供了避免在<head runat=server>中使用<%...%>代码块的解决方案。

2998

被折叠的 条评论
为什么被折叠?



