公司项目中大量用到自定义的ASP.NET User Control,在SharePoint网站中用WebPart加载,一直运转挺好。但是在最近在其中一个User Control中加了一段JavaScript脚本后就不再正常了。
首先是在自定义的ASP.NET User Control中加了一个HtmlSelect,ID是htmlSelect1.然后在JavaScript脚本中引用它:
document.getElementById("htmlSelect1");脚本是写在User Control中的。其他一切照旧。但是运行后死活找不到那个HtmlSelect。打开IE->View->Source,发现他的ID被改掉了,新的ID为“ctl00$CenterContent$PortalLocalPicture$ctl00$htmlSelect1”,估计是为了避免不同的User Control中出现相同的id,所以给他把ID改了。但并不是所有的ID都被改掉,和他并列的还有<span id="span1">,就保持了原样。不知道ASP.NET修改ID的规则是什么。似乎唯一的区别就是htmlSelect1加了一个runat="server"的属性。不知道是不是这个原因。
首先是在自定义的ASP.NET User Control中加了一个HtmlSelect,ID是htmlSelect1.然后在JavaScript脚本中引用它:
document.getElementById("htmlSelect1");脚本是写在User Control中的。其他一切照旧。但是运行后死活找不到那个HtmlSelect。打开IE->View->Source,发现他的ID被改掉了,新的ID为“ctl00$CenterContent$PortalLocalPicture$ctl00$htmlSelect1”,估计是为了避免不同的User Control中出现相同的id,所以给他把ID改了。但并不是所有的ID都被改掉,和他并列的还有<span id="span1">,就保持了原样。不知道ASP.NET修改ID的规则是什么。似乎唯一的区别就是htmlSelect1加了一个runat="server"的属性。不知道是不是这个原因。