自从进入ASP.NET以来,我发现了许多非常酷的功能,这使得编程变得更加容易。
虽然我正在努力解决一个问题。
如果我创建一个具有大量与之关联的Javascript函数的用户控件,则在呈现用户控件时,.NET会根据用户控件的名称更改具有前置值的所有内容的ID,它包含PlaceHolder和MasterPage的ID。
显然,这会阻止任何ID依赖的javascript正常工作。
我可以通过手动更改javascript中的引用来解决这个问题,但如果我想将此内容放入其他placeHolder怎么办?
有没有办法动态克服这个问题?
答案 0 :(得分:2)
您可以执行以下操作:您可以使用ClientID
属性将控件名称注入JavaScript -
var txt = document.getElementById('<%=TextBoxID.ClientID%>');
或在.net 4中,您可以通过ClientIDMode
属性控制控件的命名,本文还有其他详细信息 - http://www.4guysfromrolla.com/articles/031710-1.aspx
答案 1 :(得分:1)
您可以使用ClientIDMode="Static"
(在.net4中提供)限制ASP.Net使用您选择的ID
这是一篇详细解释它的文章
http://www.codeproject.com/KB/aspnet/ASP_NET4_0ClientIDFeature.aspx