Поделиться через


MenuItemBindingCollection Класс

Определение

Представляет коллекцию MenuItemBinding объектов.

public ref class MenuItemBindingCollection sealed : System::Web::UI::StateManagedCollection
public sealed class MenuItemBindingCollection : System.Web.UI.StateManagedCollection
type MenuItemBindingCollection = class
    inherit StateManagedCollection
Public NotInheritable Class MenuItemBindingCollection
Inherits StateManagedCollection
Наследование
MenuItemBindingCollection

Примеры

В следующем примере кода показано, как заполнять MenuItemBindingCollection объект декларативно. Для правильной работы этого примера необходимо скопировать приведенные ниже примеры XML-данных в файл с именем Map.xml.


<%@ Page Language="C#" %>

<!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 runat="server">
    <title>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
       <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.xml"
        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">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.xml"
        runat="server"/>        

    </form>
  </body>
</html>

В следующем примере кода показано, как добавлять MenuItemBinding объекты в MenuItemBindingCollection объект программным способом. Для правильной работы этого примера необходимо скопировать приведенные ниже примеры XML-данных в файл с именем Map.xml.


<%@ 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(!IsPostBack)
    {
      // Create the menu item bindings for the Menu control.
      MenuItemBinding binding;
      
      binding = CreateMenuItemBinding("MapHomeNode", 0, "title", "url");
      NavigationMenu.DataBindings.Add(binding);

      binding = CreateMenuItemBinding("MapNode", 1, "title", "url");
      NavigationMenu.DataBindings.Add(binding);

      binding = CreateMenuItemBinding("MapNode", 2, "title", "url");
      NavigationMenu.DataBindings.Add(binding);
    }
  }

  // This is a helper method to create a MenuItemBinding 
  // object from the specified parameters.
  MenuItemBinding CreateMenuItemBinding(String dataMember, int depth, String textField, String navigateUrlField)
  {
    // Create a new MenuItemBinding object.
    MenuItemBinding binding = new MenuItemBinding();

    // Set the properties of the MenuItemBinding object.
    binding.DataMember = dataMember;
    binding.Depth = depth;
    binding.TextField = textField;
    binding.NavigateUrlField = navigateUrlField;

    return binding;
  }
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItemBindingCollection Add Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>MenuItemBindingCollection Add Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">        
      </asp:menu>
      
      <asp:xmldatasource id="MenuSource"
        datafile="Map.xml"
        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 Not IsPostBack Then
    
      ' Create the menu item bindings for the Menu control.
      Dim binding As MenuItemBinding
      
      binding = CreateMenuItemBinding("MapHomeNode", 0, "title", "url")
      NavigationMenu.DataBindings.Add(binding)

      binding = CreateMenuItemBinding("MapNode", 1, "title", "url")
      NavigationMenu.DataBindings.Add(binding)

      binding = CreateMenuItemBinding("MapNode", 2, "title", "url")
      NavigationMenu.DataBindings.Add(binding)
   
    End If
    
  End Sub

  ' This is a helper method to create a MenuItemBinding 
  ' object from the specified parameters.
  Function CreateMenuItemBinding(ByVal dataMember As String, ByVal depth As Integer, ByVal textField As String, ByVal navigateUrlField As String) As MenuItemBinding
  
    ' Create a new MenuItemBinding object.
    Dim binding As New MenuItemBinding()

    ' Set the properties of the MenuItemBinding object.
    binding.DataMember = dataMember
    binding.Depth = depth
    binding.TextField = textField
    binding.NavigateUrlField = navigateUrlField

    Return binding
    
  End Function
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItemBindingCollection Add Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>MenuItemBindingCollection Add Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">        
      </asp:menu>
      
      <asp:xmldatasource id="MenuSource"
        datafile="Map.xml"
        runat="server"/>        

    </form>
  </body>
</html>

Ниже приведены примеры данных карты сайта для предыдущих примеров.

<MapHomeNode url="~\Home.aspx"

title="Home"

description="Home">

<MapNode url="~\Music.aspx"

title="Music"

description="Music">

<MapNode url="~\Classical.aspx"

title="Classical"

description="Classical"/>

<MapNode url="~\Rock.aspx"

title="Rock"

description="Rock"/>

<MapNode url="~\Jazz.aspx"

title="Jazz"

description="Jazz"/>

</MapNode>

<MapNode url="~\Movies.aspx"

title="Movies"

description="Movies">

<MapNode url="~\Action.aspx"

title="Action"

description="Action"/>

<MapNode url="~\Drama.aspx"

title="Drama"

description="Drama"/>

<MapNode url="~\Musical.aspx"

title="Musical"

description="Musical"/>

</MapNode>

</MapHomeNode>

Комментарии

Класс MenuItemBindingCollection используется для хранения коллекции MenuItemBinding объектов в элементе управления и управления ими Menu . Элемент Menu управления использует MenuItemBindingCollection класс в качестве типа данных для его DataBindings свойства. Свойство DataBindings используется для хранения привязок элементов меню, определенных для Menu элемента управления.

Замечание

Порядок MenuItemBinding отображения объектов в коллекции не влияет на то, как эти объекты применяются к элементам меню в элементе Menu управления.

Класс MenuItemBindingCollection поддерживает несколько способов доступа к элементам в коллекции:

  • Item[] Используйте индексатор для непосредственного получения MenuItemBinding объекта по определенному отсчитываемой от нуля индексу.

  • GetEnumerator Используйте метод для создания перечислителя, который можно использовать для итерации по коллекции.

  • CopyTo Используйте метод для копирования содержимого коллекции в массив.

Вы можете программно управлять MenuItemBindingCollection объектом, добавив и удалив MenuItemBinding объекты. Чтобы добавить элементы меню в коллекцию, используйте Add метод или Insert метод. Чтобы удалить узлы из коллекции, используйте Removeметод , RemoveAtили Clear метод.

Класс MenuItemBindingCollection содержит свойства и методы, позволяющие получить сведения о самой коллекции. Чтобы узнать, сколько элементов находится в коллекции, используйте Count свойство. Если вы хотите определить, содержит ли коллекция определенный MenuItemBinding объект, используйте Contains этот метод. Чтобы получить индекс MenuItemBinding объекта в коллекции, используйте IndexOf метод.

Свойства

Имя Описание
Count

Возвращает количество элементов, содержащихся в StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
Item[Int32]

Возвращает объект по указанному MenuItemBinding индексу из коллекции.

Методы

Имя Описание
Add(MenuItemBinding)

Добавляет указанный MenuItemBinding объект в конец коллекции.

Clear()

Удаляет все элементы из StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
Contains(MenuItemBinding)

Определяет, находится ли указанный MenuItemBinding объект в коллекции.

CopyTo(Array, Int32)

Копирует элементы StateManagedCollection коллекции в массив, начиная с определенного индекса массива.

(Унаследовано от StateManagedCollection)
CopyTo(MenuItemBinding[], Int32)

Копирует все элементы из MenuItemBindingCollection объекта в совместимый одномерный массив объектов, начиная с указанного MenuItemBinding индекса в целевом массиве.

CreateKnownType(Int32)

При переопределении в производном классе создает экземпляр класса, реализующего IStateManager. Тип создаваемого объекта основан на указанном элементе коллекции, возвращаемой методом GetKnownTypes() .

(Унаследовано от StateManagedCollection)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает итератор, который выполняет итерацию по StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetKnownTypes()

При переопределении в производном классе получает массив IStateManager типов, которые StateManagedCollection может содержать коллекция.

(Унаследовано от StateManagedCollection)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
IndexOf(MenuItemBinding)

Определяет индекс указанного MenuItemBinding объекта в коллекции.

Insert(Int32, MenuItemBinding)

Добавляет указанный MenuItemBinding объект в коллекцию по указанному расположению индекса.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnClear()

При переопределении в производном классе выполняет дополнительную работу перед Clear() удалением всех элементов из коллекции.

(Унаследовано от StateManagedCollection)
OnClearComplete()

При переопределении в производном классе выполняет дополнительную работу после Clear() завершения удаления всех элементов из коллекции.

(Унаследовано от StateManagedCollection)
OnInsert(Int32, Object)

При переопределении в производном классе выполняет дополнительную работу перед IList.Insert(Int32, Object)IList.Add(Object) добавлением элемента в коллекцию.

(Унаследовано от StateManagedCollection)
OnInsertComplete(Int32, Object)

При переопределении в производном классе выполняет дополнительную работу после IList.Insert(Int32, Object)IList.Add(Object) добавления элемента в коллекцию.

(Унаследовано от StateManagedCollection)
OnRemove(Int32, Object)

При переопределении в производном классе выполняет дополнительную работу перед IList.Remove(Object)IList.RemoveAt(Int32) удалением указанного элемента из коллекции.

(Унаследовано от StateManagedCollection)
OnRemoveComplete(Int32, Object)

При переопределении в производном классе выполняет дополнительную работу после IList.Remove(Object)IList.RemoveAt(Int32) удаления указанного элемента из коллекции.

(Унаследовано от StateManagedCollection)
OnValidate(Object)

При переопределении в производном классе проверяет элемент StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
Remove(MenuItemBinding)

Удаляет указанный MenuItemBinding объект из коллекции.

RemoveAt(Int32)

Удаляет MenuItemBinding объект по указанному расположению индекса из коллекции.

SetDirty()

Принудительно сериализовать всю StateManagedCollection коллекцию в состояние просмотра.

(Унаследовано от StateManagedCollection)
SetDirtyObject(Object)

При переопределении в производном классе предписывает object коллекции записывать все его состояние для просмотра состояния, а не записи только сведений об изменении.

(Унаследовано от StateManagedCollection)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
ICollection.Count

Возвращает количество элементов, содержащихся в StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
ICollection.IsSynchronized

Возвращает значение, указывающее, синхронизирована ли StateManagedCollection коллекция (потокобезопасная). Этот метод возвращается false во всех случаях.

(Унаследовано от StateManagedCollection)
ICollection.SyncRoot

Возвращает объект, который можно использовать для синхронизации доступа к StateManagedCollection коллекции. Этот метод возвращается null во всех случаях.

(Унаследовано от StateManagedCollection)
IEnumerable.GetEnumerator()

Возвращает итератор, который выполняет итерацию по StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.Add(Object)

Добавляет элемент в коллекцию StateManagedCollection .

(Унаследовано от StateManagedCollection)
IList.Clear()

Удаляет все элементы из StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.Contains(Object)

Определяет, содержит ли StateManagedCollection коллекция определенное значение.

(Унаследовано от StateManagedCollection)
IList.IndexOf(Object)

Определяет индекс указанного элемента в StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.Insert(Int32, Object)

Вставляет элемент в StateManagedCollection коллекцию по указанному индексу.

(Унаследовано от StateManagedCollection)
IList.IsFixedSize

Возвращает значение, указывающее, имеет ли StateManagedCollection коллекция фиксированный размер. Этот метод возвращается false во всех случаях.

(Унаследовано от StateManagedCollection)
IList.IsReadOnly

Возвращает значение, указывающее, доступна ли StateManagedCollection коллекция только для чтения.

(Унаследовано от StateManagedCollection)
IList.Item[Int32]

Возвращает элемент по указанному IStateManager индексу.

(Унаследовано от StateManagedCollection)
IList.Remove(Object)

Удаляет первое вхождение указанного объекта из StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.RemoveAt(Int32)

Удаляет IStateManager элемент по указанному индексу.

(Унаследовано от StateManagedCollection)
IStateManager.IsTrackingViewState

Возвращает значение, указывающее, сохраняется ли StateManagedCollection коллекция изменений в состоянии представления.

(Унаследовано от StateManagedCollection)
IStateManager.LoadViewState(Object)

Восстанавливает ранее сохраненное состояние StateManagedCollection представления коллекции и IStateManager элементы, которые он содержит.

(Унаследовано от StateManagedCollection)
IStateManager.SaveViewState()

Сохраняет изменения в StateManagedCollection коллекции и каждый IStateManager объект, содержащийся с момента публикации страницы на сервер.

(Унаследовано от StateManagedCollection)
IStateManager.TrackViewState()

Приводит StateManagedCollection к тому, что коллекция и каждый из IStateManager объектов, содержащихся в нем, отслеживают изменения в состоянии представления, чтобы их можно было сохранять в запросах на одну и ту же страницу.

(Унаследовано от StateManagedCollection)

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

Применяется к

См. также раздел