Asp.net
如何在使用 MasterPage 的 ASP.NET Web 窗體中為伺服器控制項設置特定 ID?
是否可以在 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 的控制項。檢查上面連結的文章以獲取其他選項。