Asp.net

如何在使用 MasterPage 的 ASP.NET Web 窗體中為伺服器控制項設置特定 ID?

  • July 28, 2016

是否可以在 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)

這是 4.0 之前的 .NET 中 Web 控制項 ID 的方式。4.0 版引入了客戶端 ID,您可以在此處閱讀。

你可以在你的 JS 中使用這樣的東西:

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

從 .NET 4 開始,您可以更好地控制客戶端 ID 的外觀(有關詳細資訊,請參閱這篇文章)。

要強制使用特定的客戶端 ID,您必須將 ClientIDMode 設置為靜態。以下將呈現一個<input>元素id="txtName"

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

儘管如果您這樣做,您必須確保您沒有兩個具有相同客戶端 ID 的控制項。檢查上面連結的文章以獲取其他選項。

引用自:https://stackoverflow.com/questions/3304478