Control.ClientID 屬性

定義

取得 ASP.NET 所產生之 HTML 標記的控制項識別碼。

public:
 virtual property System::String ^ ClientID { System::String ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual string ClientID { get; }
[<System.ComponentModel.Browsable(false)>]
member this.ClientID : string
Public Overridable ReadOnly Property ClientID As String

屬性值

ASP.NET 所產生之 HTML 標記的控制項識別碼。

屬性

範例

下列範例顯示主版頁面內容頁面中的 Web 使用者控制項。 使用者控制項包含 DropDownList 控制項和 Label 控制項。 控制項中顯示的 Label 文字取決於使用者從 DropDownList 控制項中選取的值。 文字值是透過用戶端腳本設定,因此網頁不需要回傳至伺服器,才能設定此值。 若要取得用戶端腳本中針對 Label 控制項轉譯的 HTML 元素參考,您必須知道控制項的 ClientID 屬性值。 不過,因為使用者控制項可以放在網頁中的任何位置,所以無法事先知道哪些命名容器會包含控制項。 ClientID為了確保值與值相同 ID ,程式碼會將 ClientIDMode 值設定為 Static

下列範例顯示使用者控制項。

<%@ Control AutoEventWireup="true" %>

<script type="text/javascript">
  var seasonalSports = new Array("None selected",
                                 "Tennis",
                                 "Volleyball",
                                 "Baseball",
                                 "Skiing");

  function DisplaySport(x) {
      document.getElementById("SelectedSport").innerHTML
      = seasonalSports[x];
  }    
</script>

<asp:DropDownList ID="DropDownList1" runat="server" 
                  onchange="DisplaySport(this.selectedIndex);">
  <asp:ListItem Value="Select a season"></asp:ListItem>
  <asp:ListItem Value="Spring"></asp:ListItem>
  <asp:ListItem Value="Summer"></asp:ListItem>
  <asp:ListItem Value="Autumn"></asp:ListItem>
  <asp:ListItem Value="Winter"></asp:ListItem>
</asp:DropDownList>
<br />
<asp:Label ID="SelectedSport" runat="server" ClientIDMode="Static">
</asp:Label>

下列範例顯示包含使用者控制項的內容頁面。

<%@ Page Title="" MasterPageFile="~/Seasons.master" AutoEventWireup="true" %>

<%@ Register Src="Seasons.ascx" TagName="Seasons" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
  <uc1:Seasons ID="Seasons1" runat="server" />
</asp:Content>

下列範例顯示包含內容頁面的主版頁面。

<%@ Master AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
        
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

備註

當網頁伺服器控制項轉譯為 HTML 專案時, id HTML 元素的 屬性會設定為 屬性的值 ClientID 。 值 ClientID 通常用來使用 document.getElementById 方法來存取用戶端腳本中的 HTML 專案。 識別碼也常用於 CSS 規則,以指定要設定樣式的元素。 例如,下列 CSS 樣式規則會 span 選取所有具有 id 屬性值 ProductIDLabel 的專案,並將其屬性設定 background-colorwhite

span#ProductIDLabel { background-color: white; }

ASP.NET 提供多個演算法來產生 ClientID 屬性值。 您可以藉由設定 ClientIDMode 控制項的 屬性來選取要用於控制項的演算法。 演算法是由 ClientIDMode 下表所列的列舉值所識別。

描述
AutoID ClientID 值是透過串連每個父命名容器的 ID 值與控制項的 ID 值產生。 在呈現控制項之多個執行個體的資料繫結情節中,遞增值會插入控制項之 ID 值的前面。 各區段是以底線字元 (_) 分隔。 此演算法用於 ASP.NET 早于 ASP.NET 4 的版本。
Static ClientID 值設定為 ID 屬性的值。 如果控制項是命名容器,則對於其包含的所有控制項而言,會用來做為命名容器之階層架構的最上層。
Predictable 這個演算法用於資料繫結控制項中的控制項。 ClientID 值是透過串連父命名容器的 ClientID 值與控制項的 ID 值產生。 如果控制項是資料繫結控制項,並且會產生多個資料列,則 ClientIDRowSuffix 屬性中指定之資料欄位的值會加入結尾處。 針對 GridView 控制項,可以指定多個資料欄位。 ClientIDRowSuffix如果屬性是空白的,則會在結尾加入循序數位,而不是資料欄值。 各區段是以底線字元 (_) 分隔。
Inherit 此控制項會繼承其 ClientIDMode 控制項的 NamingContainer 設定。

頁面的 ClientIDMode 預設值為 Predictable 。 控制項的 ClientIDMode 預設值為 Inherit 。 因為控制項的預設值是 Inherit ,所以預設產生模式為 Predictable 。 不過, (,如果您使用 Visual Studio 將 Web 專案從舊版轉換成 ASP.NET 4,Visual Studio 會自動將網站預設值 AutoID 設定為 Web.config file.)

如需詳細資訊,請參閱 ASP.NET 網頁伺服器控制項識別

適用於

另請參閱