Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Control.NamingContainer propriété

 

Date de publication : novembre 2016

Obtient une référence au contrôle de serveur de noms de conteneur, ce qui crée un espace de noms unique pour différencier les contrôles serveur avec le même Control.ID valeur de propriété.

Espace de noms:   System.Web.UI
Assembly:  System.Web (dans System.Web.dll)

[BindableAttribute(false)]
[BrowsableAttribute(false)]
public virtual Control NamingContainer { get; }

Valeur de propriété

Type: System.Web.UI.Control

Conteneur d’attribution de noms du contrôle serveur.

Chaque page dans une application Web ASP.NET contient une hiérarchie de contrôles. Cette hiérarchie n’est pas dépendante si un contrôle génère une interface utilisateur visible par l’utilisateur. Le conteneur d’attribution de noms pour un contrôle donné est le contrôle parent au-dessus de lui dans la hiérarchie qui implémente le INamingContainer interface. Un contrôle serveur qui implémente cette interface crée un espace de noms unique pour le ID des valeurs de propriété de ses contrôles serveur enfants. Vous pouvez utiliser le NamingContainer propriété du contrôle d’enfants d’un conteneur d’attribution de noms pour obtenir une référence à son conteneur parent.

Création d’un espace de noms unique pour les contrôles serveur est particulièrement importante lorsque vous liez des contrôles serveur Web aux données, tels que les Repeater et DataList des contrôles serveur. Si plusieurs entrées dans la source de données créent plusieurs instances d’un contrôle serveur qui est un enfant du contrôle répété, le conteneur d’attribution de noms garantit que chaque instance de ces contrôles enfants ont UniqueID les valeurs de propriété qui n’entrent pas en conflit. Le conteneur d’attribution de noms par défaut pour une page est l’instance de la Page classe qui est générée lorsque la page est demandée.

Le ClientID propriété contient la valeur restituée comme l’élément id attribut dans le balisage HTML. Selon la valeur que vous attribuez à la ClientIDMode propriété, la valeur est générée pour le ClientID propriété peut-être inclure l’ID de la NamingContainer objet. Lorsque vous définissez ClientIDMode à Static, la ClientID valeur n’inclut pas l’ID de la NamingContainer objet. Lorsque vous définissez ClientIDMode soit AutoID ou Predictable, la ClientID valeur inclut l’ID de la NamingContainer objet. Pour plus d'informations, consultez ASP.NET Web Server Control Identification.

L’exemple suivant montre comment utiliser le NamingContainer propriété.

<% @ 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" />
               &nbsp;&nbsp;&nbsp;&nbsp;
            </ItemTemplate>
         </asp:DataList>
      </form>
   </body>
</html>

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: