共用方式為


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 4 的 ASP.NET 版本。
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 網頁伺服器控制項識別

適用於

另請參閱