Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
Control.ClientID, propriété
Obtient l'ID de contrôle pour le balisage HTML généré par ASP.NET.
Assembly : System.Web (dans System.Web.dll)
Lorsqu'un contrôle serveur Web est restitué comme un élément HTML, l'attribut id de l'élément HTML a la valeur de la propriété ClientID. La valeur ClientID est souvent utilisée pour accéder à l'élément HTML dans le script client à l'aide de la méthode document.getElementById. L'ID est également souvent utilisé dans les règles CSS pour spécifier des éléments dans le style. Par exemple, la règle de style CSS suivante sélectionne tous les éléments span qui ont la valeur d'attribut id de ProductIDLabel et affecte à leur attribut background-color la valeur white :
span#ProductIDLabel { background-color: white; }
ASP.NET fournit plusieurs algorithmes pour générer la valeur de propriété ClientID. Vous sélectionnez l'algorithme à utiliser pour un contrôle en définissant sa propriété ClientIDMode. Les algorithmes sont identifiés par les valeurs d'énumération ClientIDMode qui apparaissent dans le tableau suivant.
Valeur | Description |
|---|---|
La valeur de la propriété ClientID est générée par concaténation des valeurs de la propriété ID de chaque conteneur d'attribution de noms parent à la valeur de la propriété ID du contrôle. Dans les scénarios de liaison de données où plusieurs instances d'un contrôle sont restituées, une valeur d'incrémentation est insérée devant la valeur de la propriété ID du contrôle. Chaque segment est séparé par un trait de soulignement (_). Cet algorithme a été utilisé dans les versions d'ASP.NET antérieures à ASP.NET 4. | |
La propriété ID a la valeur de la propriété ClientID. Si le contrôle est un conteneur d'attribution de noms, il est utilisé comme élément le plus élevé de la hiérarchie des conteneurs d'attribution de noms pour tous les contrôles qu'il contient. | |
Cet algorithme est utilisé pour les contrôles contenus dans des contrôles liés aux données. La valeur de la propriété ClientID est générée par concaténation de la valeur de la propriété ClientID du conteneur d'attribution de noms parent à la valeur de la propriété ID du contrôle. Si le contrôle est un contrôle lié aux données qui génère plusieurs lignes, la valeur du champ de données spécifiée dans la propriété ClientIDRowSuffix est ajoutée à la fin. Pour le contrôle GridView, plusieurs champs de données peuvent être spécifiés. Si la propriété ClientIDRowSuffix est vide, un numéro séquentiel est ajouté à la fin au lieu d'une valeur de champ de données. Chaque segment est séparé par un trait de soulignement (_). | |
Le contrôle hérite du paramètre de ClientIDMode de son contrôle parent. |
La valeur par défaut de ClientIDMode pour une page est Predictable. La valeur par défaut de ClientIDMode pour un contrôle est Inherit. Comme la valeur par défaut du contrôle est Inherit, le mode de génération par défaut est Predictable. (Toutefois, si vous utilisez Visual Studio pour convertir un projet Web en ASP.NET 4 d'une version antérieure, Visual Studio définit automatiquement la valeur par défaut du site sur AutoID dans le fichier Web.config.)
Pour plus d'informations, consultez Identification du contrôle serveur Web ASP.NET.
Les exemples suivants affichent un contrôle utilisateur Web qui est à l'intérieur d'une page de contenu pour une page maître. Le contrôle utilisateur contient un contrôle DropDownList et un contrôle Label. Le texte affiché dans le contrôle Label est déterminé par la valeur que l'utilisateur sélectionne dans le contrôle DropDownList. La valeur de texte est définie via un script client afin que la page Web n'ait pas à effectuer une nouvelle publication sur le serveur pour définir cette valeur. Pour obtenir une référence pour l'élément HTML restitué pour le contrôle Label dans le script client, vous devez connaître la valeur de la propriété ClientID du contrôle. Toutefois, étant donné que le contrôle utilisateur peut être placé n'importe où dans une page Web, il est impossible de savoir à l'avance quels conteneurs d'attribution de noms contiendront les contrôles. Pour garantir que la valeur ClientID est identique à la valeur ID, le code affecte la valeur ClientIDMode à Static.
L'exemple suivant affiche le contrôle utilisateur.
<%@ 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>
L'exemple suivant affiche la page de contenu qui contient le contrôle utilisateur.
<%@ 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>
L'exemple suivant affiche la page maître qui contient la page de contenu.
<%@ 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>
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.