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

Edw*_*ard 10 asp.net servercontrols

是否可以在ASP.NET服务器控件上设置特定的ID?每次我分配ID并运行Web表单时,ID都会更改.

例如:

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

获取翻译成这个:

<input id="ct100_ContentPlaceHolder1_txtName" type="text" />
Run Code Online (Sandbox Code Playgroud)

我认为这对我来说是使用母版页,但如果是这样,我怎么能确定一个控件将具有一定的ID(用于javascript目的).我将自动生成的ID放在我的javascript中并且它正在运行,但我更喜欢使用我最初分配它们的id.这可能吗?

(这是版本:ASP.NET 3.5)

M4N*_*M4N 25

从.NET 4开始,您可以更好地控制客户端ID的外观(有关详细信息,请参阅此帖子).

要强制使用特定的客户端ID,必须将ClientIDMode设置为static.以下将呈现一个<input>元素id="txtName":

<asp:TextBox ID="txtName" ClientIDMode="static" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

虽然如果这样做,您必须确保没有两个具有相同客户端ID的控件.检查上面链接的文章以获取其他选项.


Dus*_*ine 5

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

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

var something = '<%= txtName.ClientID %>';
Run Code Online (Sandbox Code Playgroud)