Control.ClientID Właściwość

Definicja

Pobiera identyfikator formantu dla znacznika HTML, który jest generowany przez ASP.NET.Gets the control ID for HTML markup that is generated by ASP.NET.

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

Wartość właściwości

Identyfikator kontrolki dla znacznika HTML, który jest generowany przez ASP.NET.The control ID for HTML markup that is generated by ASP.NET.

Atrybuty

Przykłady

W poniższych przykładach pokazano kontrolkę użytkownika sieci Web, która znajduje się wewnątrz strony zawartości strony wzorcowej.The following examples show a Web user control that is inside a content page for a master page. Kontrolka użytkownika zawiera kontrolkę DropDownList i kontrolkę Label.The user control contains a DropDownList control and a Label control. Tekst wyświetlany w kontrolce Label jest określany przez wartość, którą użytkownik wybiera z kontrolki DropDownList.The text that is displayed in the Label control is determined by the value that the user selects from the DropDownList control. Wartość tekstowa jest ustawiana za pomocą skryptu klienta, dzięki czemu Strona sieci Web nie musi ogłaszać z powrotem na serwerze w celu ustawienia tej wartości.The text value is set through client script so that the Web page does not have to post back to the server in order to set this value. Aby uzyskać odwołanie do elementu HTML, który jest renderowany dla formantu Label w skrypcie klienta, należy znać wartość właściwości ClientID kontrolki.To get a reference to the HTML element that is rendered for the Label control in client script, you must know the value of the control's ClientID property. Jednak ponieważ kontrolka użytkownika może być umieszczona w dowolnym miejscu na stronie sieci Web, nie jest możliwe uzyskanie informacji o tym, które kontenery nazewnictwa będą zawierać formanty.However, because the user control can be put anywhere in a Web page, it is impossible to know in advance which naming containers will contain the controls. Aby upewnić się, że wartość ClientID będzie taka sama jak wartość ID, kod ustawia wartość ClientIDMode na Static.To make sure that the ClientID value will be the same as the ID value, the code sets the ClientIDMode value to Static.

Poniższy przykład pokazuje kontrolkę użytkownika.The following example shows the user control.

<!-- <Snippet1> -->
<%@ Control AutoEventWireup="true" %>
<!-- <Snippet4> -->

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

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

<!-- </Snippet4> -->
<!-- <Snippet5> --> 
<asp:DropDownList ID="DropDownList1" runat="server" 
                  onchange="DisplaySport(this.selectedIndex);">
  <%-- </Snippet5> --%>
  <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>
<!-- </Snippet1> -->

Poniższy przykład pokazuje stronę zawartości, która zawiera kontrolkę użytkownika.The following example shows the content page that contains the user control.

<!-- <Snippet2> -->
<%@ 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>
<!-- </Snippet2> -->

Poniższy przykład pokazuje stronę wzorcową zawierającą stronę zawartość.The following example shows the master page that contains the content page.

<!-- <Snippet3> -->
<%@ 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>
<!-- </Snippet3> -->

Uwagi

Gdy formant serwera sieci Web jest renderowany jako element HTML, atrybut id elementu HTML jest ustawiony na wartość właściwości ClientID.When a Web server control is rendered as an HTML element, the id attribute of the HTML element is set to the value of the ClientID property. Wartość ClientID jest często używana do uzyskiwania dostępu do elementu HTML w skrypcie klienta przy użyciu metody document.getElementById.The ClientID value is often used to access the HTML element in client script by using the document.getElementById method. Identyfikator jest również często używany w regułach CSS, aby określić elementy do stylu.The ID is also often used in CSS rules to specify elements to style. Na przykład następująca reguła stylu CSS zaznacza wszystkie elementy span, które mają id wartość atrybutu ProductIDLabel i ustawia ich atrybut background-color na white:For example, the following CSS style rule selects all span elements that have the id attribute value of ProductIDLabel and sets their background-color attribute to white:

span#ProductIDLabel { background-color: white; }

ASP.NET udostępnia wiele algorytmów służących do generowania wartości właściwości ClientID.ASP.NET provides multiple algorithms for how to generate the ClientID property value. Wybierz algorytm, który ma być używany dla kontrolki, ustawiając jej Właściwość ClientIDMode.You select which algorithm to use for a control by setting its ClientIDMode property. Algorytmy są identyfikowane przez ClientIDMode wartości wyliczenia, które są wymienione w poniższej tabeli.The algorithms are identified by the ClientIDMode enumeration values that are listed in the following table.

WartośćValue OpisDescription
AutoID Wartość ClientID jest generowana przez połączenie ID wartości każdego nadrzędnego kontenera nazw z wartością ID formantu.The ClientID value is generated by concatenating the ID values of each parent naming container with the ID value of the control. W scenariuszach wiązania z danymi, w których renderowane jest wiele wystąpień kontrolki, wartość zwiększania jest wstawiana przed wartością ID formantu.In data-binding scenarios where multiple instances of a control are rendered, an incrementing value is inserted in front of the control's ID value. Każdy segment jest oddzielony znakiem podkreślenia ().Each segment is separated by an underscore character (). Ten algorytm został użyty w wersjach programu ASP.NET wcześniejszych niż ASP.NET 4.This algorithm was used in versions of ASP.NET earlier than ASP.NET 4.
Static Wartość ClientID jest ustawiona na wartość właściwości ID.The ClientID value is set to the value of the ID property. Jeśli formant jest kontenerem nazewnictwa, formant jest używany jako Góra hierarchii nazewnictwa kontenerów dla wszystkich kontrolek, które zawiera.If the control is a naming container, the control is used as the top of the hierarchy of naming containers for any controls that it contains.
Predictable Ten algorytm jest używany dla formantów, które znajdują się w formantach powiązanych z danymi.This algorithm is used for controls that are in data-bound controls. Wartość ClientID jest generowana przez połączenie ClientID wartości nadrzędnego kontenera nazw z wartością ID formantu.The ClientID value is generated by concatenating the ClientID value of the parent naming container with the ID value of the control. Jeśli formant jest formantem związanym z danymi, który generuje wiele wierszy, wartość pola danych określonego we właściwości ClientIDRowSuffix jest dodawana na końcu.If the control is a data-bound control that generates multiple rows, the value of the data field specified in the ClientIDRowSuffix property is added at the end. Dla kontrolki GridView można określić wiele pól danych.For the GridView control, multiple data fields can be specified. Jeśli właściwość ClientIDRowSuffix jest pusta, na końcu zostanie dodany numer sekwencyjny zamiast wartości pola danych.If the ClientIDRowSuffix property is blank, a sequential number is added at the end instead of a data-field value. Każdy segment jest oddzielony znakiem podkreślenia ().Each segment is separated by an underscore character ().
Inherit Kontrolka dziedziczy ustawienie ClientIDMode kontrolki NamingContainer.The control inherits the ClientIDMode setting of its NamingContainer control.

Wartość domyślna ClientIDMode strony jest Predictable.The default value of ClientIDMode for a page is Predictable. Wartość domyślna ClientIDMode formantu jest Inherit.The default value of ClientIDMode for a control is Inherit. Ponieważ domyślnie dla formantów jest Inherit, domyślnym trybem generowania jest Predictable.Because the default for controls is Inherit, the default generation mode is Predictable. Jeśli jednak użyjesz programu Visual Studio do przekonwertowania projektu sieci Web na ASP.NET 4 ze starszej wersji, program Visual Studio automatycznie ustawi domyślną lokację AutoID w pliku Web. config.(However, if you use Visual Studio to convert a Web project to ASP.NET 4 from an earlier version, Visual Studio automatically sets the site default to AutoID in the Web.config file.)

Aby uzyskać więcej informacji, zobacz Identyfikacja kontrolki serwera sieci Web ASP.NET.For more information, see ASP.NET Web Server Control Identification.

Dotyczy

Zobacz też