Ler em inglês

Compartilhar via


Control.NamingContainer Propriedade

Definição

Obtém uma referência ao contêiner de nomenclatura do controle do servidor, que cria um namespace exclusivo para diferenciar entre os controles de servidor com o mesmo valor da propriedade ID.

[System.ComponentModel.Browsable(false)]
public virtual System.Web.UI.Control NamingContainer { get; }
[System.ComponentModel.Browsable(false)]
[System.ComponentModel.Bindable(false)]
public virtual System.Web.UI.Control NamingContainer { get; }

Valor da propriedade

O controle de servidor do contêiner de nomenclatura.

Atributos

Exemplos

O exemplo a seguir demonstra o uso da NamingContainer propriedade .

<% @ 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>

Comentários

Cada página em um aplicativo Web ASP.NET contém uma hierarquia de controles. Essa hierarquia não depende se um controle gera interface do usuário visível para o usuário. O contêiner de nomenclatura para um determinado controle é o controle pai acima dele na hierarquia que implementa a INamingContainer interface . Um controle de servidor que implementa essa interface cria um namespace exclusivo para os ID valores de propriedade de seus controles de servidor filho. Você pode usar a NamingContainer propriedade do controle filho de um contêiner de nomenclatura para obter uma referência ao contêiner pai.

A criação de um namespace exclusivo para controles de servidor é particularmente importante quando você associa controles de servidor Web a dados, como os controles de Repeater servidor e DataList . Quando várias entradas na fonte de dados criam várias instâncias de um controle de servidor que é filho do controle de repetição, o contêiner de nomenclatura garante que cada instância desses controles filho tenha UniqueID valores de propriedade que não entram em conflito. O contêiner de nomenclatura padrão de uma página é a instância da Page classe gerada quando essa página é solicitada.

A ClientID propriedade contém o valor renderizado como o atributo do id elemento na marcação HTML. Dependendo do valor que você atribui à ClientIDMode propriedade , o valor gerado para a ClientID propriedade pode incluir a ID do NamingContainer objeto. Quando você define ClientIDMode como Static, o ClientID valor não inclui a ID do NamingContainer objeto . Quando você definir ClientIDMode como AutoID ou Predictable, o ClientID valor incluirá a ID do NamingContainer objeto . Para obter mais informações, consulte ASP.NET Web Server Control Identification (Identificação de controles do servidor Web do ASP.NET).

Aplica-se a

Produto Versões
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Confira também