如何在使用 MasterPage 的 ASP.NET Web 窗体中为服务器控件设置特定 ID?

发布于 2024-09-11 01:18:02 字数 439 浏览 4 评论 0原文

是否可以在 ASP.NET 服务器控件上设置特定 ID?每次我分配一个 ID 并运行 Web 表单时,ID 都会发生变化。

例如:

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>

翻译成这样:

<input id="ct100_ContentPlaceHolder1_txtName" type="text" />

我认为这是对我使用母版页所做的,但如果是这样,我如何确定控件将具有特定的 ID(用于 JavaScript 目的)。我将自动生成的 id 放入我的 javascript 中并且它正在工作,但我更愿意使用我最初分配给它们的 id。这可能吗?

(适用于版本:ASP.NET 3.5)

Is it possible to set a specific ID on an ASP.NET server control? Everytime I assign an ID and run the web form the ID changes.

For Example:

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>

Gets translated into this:

<input id="ct100_ContentPlaceHolder1_txtName" type="text" />

I think this is do to me using master pages, but if so how can I be sure a control will have a certain ID(for javascript purposes). I placed the auto-generated id in my javascript and it is working, but I would prefer to have used the id's that I originally assigned them. Is this possible?

(This is for version:ASP.NET 3.5)

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

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

发布评论

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

评论(3

纵山崖 2024-09-18 01:18:02

从 .NET 4 开始,您可以更好地控制客户端 ID 的外观 (请参阅这篇文章了解详细信息)。

要强制使用特定的客户端 ID,您必须将 ClientIDMode 设置为静态。以下代码将呈现一个带有 id="txtName" 元素:

<asp:TextBox ID="txtName" ClientIDMode="static" runat="server"></asp:TextBox>

尽管如果这样做,您必须确保没有两个控件相同的客户端 ID。检查上面链接的文章以了解其他选项。

Starting with .NET 4 you have greater control about how the client-side IDs look like (see this post for details).

To force a specific client-side ID, you have to set the ClientIDMode to static. The following will render an <input> element with id="txtName":

<asp:TextBox ID="txtName" ClientIDMode="static" runat="server"></asp:TextBox>

Although if you do this, you have to ensure that you don't have two controls with identical client-side IDs. Check the article linked above for other options.

唱一曲作罢 2024-09-18 01:18:02

这是 4.0 版本之前的 .NET 中 Web 控件 ID 的方式。版本 4.0 引入了客户端 ID,您可以阅读有关 此处

你可以在 JS 中使用这样的东西:

var something = '<%= txtName.ClientID %>';

This is the way web controls ID's are in .NET prior to version 4.0. Version 4.0 introduces client IDs, which you can read about here.

You can use somthing like this in your JS:

var something = '<%= txtName.ClientID %>';
南城旧梦 2024-09-18 01:18:02

您可以使用 Control.ClientID 代码隐藏中的属性,以在将其添加到控件树后获取实际的 id。

ASP.NET WebForms 人员做出的超级烦人的选择。

You can use the Control.ClientID property in your codebehind to get the actual id after it's been added to the control tree.

Super annoying choice made by the asp.net webforms people.

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