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.NamingContainer, propriété
Obtient une référence au conteneur d'attribution de noms du contrôle serveur, qui crée un espace de noms unique pour différencier les contrôles serveur dont la propriété Control.ID possède la même valeur.
Assembly : System.Web (dans System.Web.dll)
Chaque page d'une application Web ASP.NET contient une hiérarchie de contrôles. Cette hiérarchie ne dépend pas du fait qu'un contrôle génère une interface utilisateur visible pour l'utilisateur. Le conteneur d'attribution de noms d'un contrôle donné est le contrôle parent situé au niveau supérieur dans la hiérarchie qui implémente l'interface INamingContainer. Un contrôle serveur qui implémente cette interface crée un espace de noms unique pour les valeurs de la propriété ID de ses contrôles serveur enfants. Vous pouvez utiliser la propriété NamingContainer du contrôle enfant d'un conteneur d'attribution de noms pour obtenir une référence pour son conteneur parent.
La création d'un espace de noms unique pour les contrôles serveur est particulièrement importante si vous liez les contrôles serveur Web aux données, tels que les contrôles serveur Repeater et DataList. Si plusieurs entrées de la source de données créent des instances multiples d'un contrôle serveur qui est un enfant du contrôle répété, le conteneur d'attribution de noms garantit l'absence de conflit entre chaque instance des valeurs des propriétés UniqueID de ces contrôles enfants. Le conteneur d'attribution de noms par défaut d'une page est l'instance de la classe Page générée lorsque la page est demandée.
La propriété ClientID contient la valeur restituée comme l'attribut id de l'élément dans la balise HTML. Selon la valeur que vous assignez à la propriété ClientIDMode, la valeur générée pour la propriété ClientID peut inclure l'ID de l'objet NamingContainer. Lorsque vous affectez à ClientIDMode la valeur Static, la valeur ClientID n'inclut pas l'ID de l'objet NamingContainer. Lorsque vous affectez à ClientIDMode la valeur AutoID ou Predictable, la valeur ClientID inclura l'ID de l'objet NamingContainer. Pour plus d'informations, consultez Identification du contrôle serveur Web ASP.NET.
L'exemple suivant illustre l'utilisation de la propriété NamingContainer.
<% @ Import Namespace = "System.Data" %> <!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> <title> Control NamingContainer Example </title> <script language="C#" runat="server"> // Build the DataSource. ICollection CreateDataSource() { DataTable myDataTable = new DataTable(); DataRow myDataRow; myDataTable.Columns.Add(new DataColumn("EmployeeName", typeof(string))); for (int i = 0; i < 10; i++) { myDataRow = myDataTable.NewRow(); myDataRow[0] = "somename" + i.ToString(); myDataTable.Rows.Add(myDataRow); } DataView myDataView = new DataView(myDataTable); return myDataView; } void Page_Load(Object sender, EventArgs e) { if (!IsPostBack) { // Bind 'DataView' to the DataSource. myDataList.DataSource = CreateDataSource(); myDataList.DataBind(); } // Attach EventHandler for SelectedIndexChanged event. myDataList.SelectedIndexChanged += new EventHandler(selectedItemChanged); } // Handler function for 'SelectedIndexChanged' event. void selectedItemChanged(Object sender,EventArgs e) { DataListItem myCurrentItem = myDataList.SelectedItem; Control myNamingContainer = myCurrentItem.Controls[0].NamingContainer; // Display the NamingContainer. myLabel1.Text = "The NamingContainer is : " + myNamingContainer.UniqueID; // Display the UniqueID. myLabel2.Text = "The UniqueID is : " + ((Control)(myCurrentItem.Controls[0])).UniqueID; } </script> </head> <body> <form runat="server" id="Form1"> <h3> Control NamingContainer Example </h3> <h4> Click an item to view it's Naming Container and UniqueID </h4> <asp:Label ID="myLabel1" Runat="server"></asp:Label> <br /> <asp:Label ID="myLabel2" Runat="server"></asp:Label> <br /> <asp:DataList id="myDataList" runat="server" BorderColor="black"> <HeaderStyle BackColor="#aaaadd"></HeaderStyle> <SelectedItemStyle BackColor="lightgreen"></SelectedItemStyle> <HeaderTemplate> EmployeeName </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="button1" Text='<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>' CommandName="select" runat="server" /> </ItemTemplate> </asp:DataList> </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.