Control.ClientID 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得 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-color
為 white
:
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 網頁伺服器控制項識別。