在ASP.NET Web窗体当控件的页面上呈现,因为需要确保冲突没有发生,每个字段的ID与ctrl01修改(又名MyField的变ctrl01 $ MyField的或诸如此类的东西)。ASP.NET Webforms如何确定控件的HTML名称?
我想知道其中一个可能找到如何算法本身的工作,或者它可能是我能找到的细节。我假设INamingContainer与此有关 - 但唉,我找不到实际决定渲染字段名称的部分。
任何帮助将会很棒!
在ASP.NET Web窗体当控件的页面上呈现,因为需要确保冲突没有发生,每个字段的ID与ctrl01修改(又名MyField的变ctrl01 $ MyField的或诸如此类的东西)。ASP.NET Webforms如何确定控件的HTML名称?
我想知道其中一个可能找到如何算法本身的工作,或者它可能是我能找到的细节。我假设INamingContainer与此有关 - 但唉,我找不到实际决定渲染字段名称的部分。
任何帮助将会很棒!
(就像你在帖子中说)你可能寻找this msdn article。
它基于网页的分层布局。但是你可以用ClientId属性来控制它。
因此在用户控件的文本框将ctrl01#textboxname被命名
除了其他答案,如果您使用的是ASP .NET 4,则其上有much morecontrol。
看看@这些网页
http://www.west-wind.com/weblog/posts/54760.aspx
http://weblogs.asp.net/asptest/archive/2009/01/06/asp-net-4-0-clientid-overview.aspx
它加到它自己的名字与你的原始ID。
在ASP.NET 4中,您可以抑制这种级联和保持自己的ID以三种不同的方式:
clientIdMode
的属性,你可以设置为Static
clientIdMode
,这将影响页面上的所有控件。web.config
影响到在所有网页上的所有控件。 (除非页面或控件设置为不同的clientIdMode
注:如果您正在使用AJAX Control Toolkit的你需要那些工具包的一部分控制设置为Predictive
的clientIdMode
啊,是的,这正是我正在寻找的,谢谢! – pinvoke 2011-04-09 20:02:45