MenuItem.ChildItems Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает объект MenuItemCollection, содержащий пункты подменю для текущего пункта меню.
public:
property System::Web::UI::WebControls::MenuItemCollection ^ ChildItems { System::Web::UI::WebControls::MenuItemCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerDefaultProperty)]
public System.Web.UI.WebControls.MenuItemCollection ChildItems { get; }
[<System.ComponentModel.Browsable(false)>]
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerDefaultProperty)>]
member this.ChildItems : System.Web.UI.WebControls.MenuItemCollection
Public ReadOnly Property ChildItems As MenuItemCollection
Значение свойства
Объект MenuItemCollection, содержащий пункты подменю для текущего пункта меню. Значение по умолчанию равно null
, что показывает, что данный пункт меню не содержит пунктов подменю.
- Атрибуты
Примеры
В следующем примере показано, как использовать ChildItems свойство для обхода элементов меню в элементе Menu управления.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// If the Menu control contains any root nodes, perform a
// preorder traversal of the tree and display the text of
// each node.
if (NavigationMenu.Items.Count > 0)
{
// Iterate through the root menu items in the Items collection.
foreach (MenuItem item in NavigationMenu.Items)
{
// Display the menu items.
DisplayChildMenuText(item);
}
}
else
{
Message.Text = "The Menu control does not have any items.";
}
}
void DisplayChildMenuText(MenuItem item)
{
// Display the menu item's text value.
Message.Text += item.Text + "<br />";
// Iterate through the child menu items of the parent menu item
// passed into this method, and display their values.
foreach (MenuItem childItem in item.ChildItems)
{
// Recursively call the DisplayChildMenuText method to
// traverse the tree and display all child menu items.
DisplayChildMenuText(childItem);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Menu Items Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Menu Items Example</h3>
<asp:menu id="NavigationMenu"
staticdisplaylevels="2"
staticsubmenuindent="10"
orientation="Vertical"
runat="server">
<items>
<asp:menuitem text="Home"
tooltip="Home">
<asp:menuitem text="Music"
tooltip="Music">
<asp:menuitem text="Classical"
tooltip="Classical"/>
<asp:menuitem text="Rock"
tooltip="Rock"/>
<asp:menuitem text="Jazz"
tooltip="Jazz"/>
</asp:menuitem>
<asp:menuitem text="Movies"
tooltip="Movies">
<asp:menuitem text="Action"
tooltip="Action"/>
<asp:menuitem text="Drama"
tooltip="Drama"/>
<asp:menuitem text="Musical"
tooltip="Musical"/>
</asp:menuitem>
</asp:menuitem>
</items>
</asp:menu>
<hr/>
<asp:label id="Message"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' If the Menu control contains any root nodes, perform a
' preorder traversal of the tree and display the text of
' each node.
If NavigationMenu.Items.Count > 0 Then
' Iterate through the root menu items in the Items collection.
Dim item As MenuItem
For Each item In NavigationMenu.Items
' Display the menu items.
DisplayChildMenuText(item)
Next
Else
Message.Text = "The Menu control does not have any items."
End If
End Sub
Sub DisplayChildMenuText(ByVal item As MenuItem)
' Display the menu item's text value.
Message.Text &= item.Text & "<br />"
' Iterate through the child menu items of the parent menu item
' passed into this method, and display their values.
Dim childItem As MenuItem
For Each childItem In item.ChildItems
' Recursively call the DisplayChildMenuText method to
' traverse the tree and display all child menu items.
DisplayChildMenuText(childItem)
Next
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Menu Items Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Menu Items Example</h3>
<asp:menu id="NavigationMenu"
staticdisplaylevels="2"
staticsubmenuindent="10"
orientation="Vertical"
runat="server">
<items>
<asp:menuitem text="Home"
tooltip="Home">
<asp:menuitem text="Music"
tooltip="Music">
<asp:menuitem text="Classical"
tooltip="Classical"/>
<asp:menuitem text="Rock"
tooltip="Rock"/>
<asp:menuitem text="Jazz"
tooltip="Jazz"/>
</asp:menuitem>
<asp:menuitem text="Movies"
tooltip="Movies">
<asp:menuitem text="Action"
tooltip="Action"/>
<asp:menuitem text="Drama"
tooltip="Drama"/>
<asp:menuitem text="Musical"
tooltip="Musical"/>
</asp:menuitem>
</asp:menuitem>
</items>
</asp:menu>
<hr/>
<asp:label id="Message"
runat="server"/>
</form>
</body>
</html>
Комментарии
ChildItems Используйте свойство (коллекцию) для доступа к подменю элементов текущего пункта меню, если таковые есть. Эта коллекция содержит только элементы меню на следующем уровне. Чтобы получить доступ к пунктам меню вниз по дереву меню, используйте ChildItems свойство последующего пункта меню. Если свойство имеет значениеnull
, текущее ChildItems меню не содержит элементов подменю.
Свойство ChildItems также можно использовать для программного управления элементами подменю текущего пункта меню. Вы можете добавлять, вставлять, удалять, извлекать и изменять MenuItem объекты из коллекции. Все обновления коллекции будут автоматически отражены в Menu элементе управления при следующем обновлении страницы.