Freigeben über


Control.NamingContainer-Eigenschaft

Ruft einen Verweis auf den Benennungscontainer des Serversteuerelements ab, der einen eindeutigen Namespace erstellt, damit zwischen Serversteuerelementen mit demselben Control.ID-Eigenschaftenwert unterschieden werden kann.

Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
<BindableAttribute(False)> _
Public Overridable ReadOnly Property NamingContainer As Control
'Usage
Dim instance As Control
Dim value As Control

value = instance.NamingContainer
[BindableAttribute(false)] 
public virtual Control NamingContainer { get; }
[BindableAttribute(false)] 
public:
virtual property Control^ NamingContainer {
    Control^ get ();
}
/** @property */
public Control get_NamingContainer ()
public function get NamingContainer () : Control

Eigenschaftenwert

Der Benennungscontainer des Serversteuerelements.

Hinweise

Jede Seite einer ASP.NET-Anwendung enthält eine Hierarchie von Steuerelementen. Diese Hierarchie hängt nicht davon ab, ob ein Steuerelement eine für den Benutzer sichtbare Benutzeroberfläche generiert. Der Benennungscontainer eines angegebenen Steuerelements ist das in der Hierarchie darüber liegende, übergeordnete Steuerelement, das die INamingContainer-Schnittstelle implementiert. Ein Serversteuerelement, das diese Schnittstelle implementiert, erstellt einen eindeutigen Namespace für die ID-Eigenschaftenwerte seiner untergeordneten Serversteuerelemente.

Das Erstellen eines eindeutigen Namespace für Serversteuerelemente ist besonders dann von Bedeutung, wenn Sie eine Datenbindung für Webserver-Listensteuerelemente durchführen (z. B. das Repeater-Serversteuerelement und das DataList-Serversteuerelement). Wenn mehrere Einträge in der Datenquelle mehrere Instanzen eines Serversteuerelements erstellen, das ein untergeordnetes Element des sich wiederholenden Steuerelements ist, stellt der Benennungscontainer für jede Instanz dieser untergeordneten Steuerelemente sicher, dass diese keine einander widersprechenden UniqueID-Eigenschaftenwerte besitzen. Der Standardbenennungscontainer für eine Seite ist die Instanz der Page-Klasse, die bei der Anforderung der Seite generiert wird.

Sie können diese Eigenschaft verwenden, um den Benennungscontainer zu bestimmen, in dem sich ein bestimmtes Serversteuerelement befindet.

Thema Position
Gewusst wie: Zugreifen auf Member eines Namenscontainers eines Webserversteuerelements Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Zugreifen auf Member eines Namenscontainers eines Webserversteuerelements Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Zugreifen auf Member eines Namenscontainers eines Webserversteuerelements Erstellen von ASP.NET-Webanwendungen

Beispiel

Im folgenden Beispiel wird die Verwendung der NamingContainer-Eigenschaft veranschaulicht.

<%@ Import Namespace = "System.Data"  %>
<html>
   <head>
      <script language="VB" runat="server">
      ' Build the DataSource.
      Function CreateDataSource() As ICollection
         Dim myDataTable As New DataTable()
         Dim myDataRow As DataRow
         myDataTable.Columns.Add(New DataColumn("EmployeeName", GetType(String)))
         Dim i As Integer
         For i = 0 To 9
            myDataRow = myDataTable.NewRow()
            myDataRow(0) = "somename" + i.ToString()
            myDataTable.Rows.Add(myDataRow)
         Next i
         Dim myDataView As New DataView(myDataTable)
         Return myDataView
      End Function

      Sub Page_Load(sender As Object, e As EventArgs)
         If Not IsPostBack Then
            ' Bind 'DataView' to the DataSource.
            myDataList.DataSource = CreateDataSource()
            myDataList.DataBind()
         End If
         ' Attach EventHandler for SelectedIndexChanged event.
         AddHandler myDataList.SelectedIndexChanged, AddressOf selectedItemChanged
      End Sub

      ' Handler function for 'SelectedIndexChanged' event.
      Sub selectedItemChanged(sender As Object, e As EventArgs)
         Dim myCurrentItem As DataListItem = myDataList.SelectedItem
         Dim myNamingContainer As Control = myCurrentItem.Controls(0).NamingContainer
         ' Display the NamingContainer.
         myLabel1.Text = "The NamingContainer is : " + myNamingContainer.UniqueID
         ' Display the UniqueID.
         myLabel2.Text = "The UniqueID is : " + CType(myCurrentItem.Controls(0), Control).UniqueID
      End Sub
    </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>
<% @ Import Namespace = "System.Data"  %>
<html>
   <head>
      <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>

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Control-Klasse
Control-Member
System.Web.UI-Namespace
INamingContainer
UniqueID
Control.ID-Eigenschaft