<BindableAttribute(False)> _ Public Overridable ReadOnly Property NamingContainer As Control
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
ASP.NET Web 應用程式中的各個網頁都包含控制項的階層架構。這個階層架構不受控制項是否產生使用者可見的 UI 的影響。指定控制項的命名容器為階層架構中在它之上而實作 INamingContainer 介面的父控制項。實作這個介面的伺服器控制項將替其子伺服器控制項的 ID 屬性值建立唯一命名空間。
建立伺服器控制項的唯一命名空間,在針對清單 Web 伺服器控制項 (例如 Repeater 和 DataList 伺服器控制項) 繫結資料時尤其重要。當資料來源中的多個項目建立伺服器控制項的多個執行個體 (也就是重複控制項的子控制項) 時,命名容器確保這些子控制項的各個執行個體具有不相衝突的 UniqueID 屬性值。網頁的預設命名容器為那個網頁被要求時所產生的 Page 類別執行個體。
您可以使用這個屬性,決定特定伺服器控制項所在的命名容器。
下列範例示範 NamingContainer 屬性的用法。
<%@ 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" /> </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" /> </ItemTemplate> </asp:DataList> </form> </body> </html>
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 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱系統需求一節的內容。