ASP.NET Webforms 如何决定控件的 HTML 名称?

发布于 2024-10-31 09:01:30 字数 223 浏览 4 评论 0原文

在 ASP.NET Web 表单中,当在页面上呈现控件时,将根据需要使用 ctrl01 修改每个字段的 ID,以确保不会发生冲突(又名 myField 变为 ctrl01$myField 或其他)。

我想知道在哪里可以找到有关算法本身如何工作的详细信息,或者我可以在哪里找到它。我假设 INamingContainer 与此有​​关 - 但可惜我找不到实际决定渲染字段名称的部分。

任何帮助都会很棒!

In ASP.NET web forms when a control is rendered on the page, the ID of each field is modified with the ctrl01 as needed to ensure collisions don't happen (aka myField becomes ctrl01$myField or whatnot).

I was wondering where one might find details on HOW the algorithm itself works, or where it might be I can find it. I am assuming the INamingContainer has something to do with this-- but alas I cannot find the part which actually decides the rendered field name.

Any help would be awesome!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

南城旧梦 2024-11-07 09:01:31

您可能正在寻找这篇 msdn 文章

You are probably looking for this msdn article.

久光 2024-11-07 09:01:31

它基于网页的分层布局。但您可以使用 ClientId 属性来控制它。

因此,用户控件中的文本框将被命名为 ctrl01#textboxname (就像您在帖子中所说的那样)

It's based on the hierarchical layout of the webpage. But you can control this with the ClientId property.

So a textbox in a usercontrol will be named ctrl01#textboxname (Like you said in your post)

超可爱的懒熊 2024-11-07 09:01:31

它将自己的名称与您的原始 ID 连接起来。

在 ASP.NET 4 中,您可以通过三种不同的方式抑制这种串联并保留您自己的 id:

  • 每个服务器控件都有一个名为 clientIdMode 的属性,您可以将其设置为 Static
  • 您可以还在页面指令中设置 clientIdMode ,这将影响页面上的所有控件。
  • 或者您可以在 web.config 中设置它以影响所有页面中的所有控件。 (除非页面或控件设置为不同的 clientIdMode

注意:如果您使用 AJAX 控件工具包,则需要将属于工具包一部分的那些控件设置为 clientIdMode > 预测

It concatenates it's own name with your original id.

In ASP.NET 4 you can suppress this concatenation and keep your own id in three different ways:

  • Each server control has an attribute called clientIdMode which you can set to Static
  • You can also set clientIdMode in the page directive which will affect all controls on the page.
  • Or you can set it in the web.config to affect all controls in all pages. (Unless the page or control is set to a different clientIdMode

Note: If you are using AJAX Control Toolkit you will need to set those controls that are part of the toolkit to a clientIdMode of Predictive

情域 2024-11-07 09:01:31

除了其他答案之外,如果您使用的是 ASP .NET 4,则您有 更多 控制 结束 它。

看看这些网页

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

Apart from the other answers, if you are using ASP .NET 4, you have much more control over it.

Take a look @ these web pages

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文