MenuItemBinding.Depth 属性

定义

获取或设置应用 MenuItemBinding 对象的菜单深度。

public:
 property int Depth { int get(); void set(int value); };
[System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public int Depth { get; set; }
[System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public int Depth { get; set; }
[<System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Depth : int with get, set
[<System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Depth : int with get, set
Public Property Depth As Integer

属性值

Int32

应用 MenuItemBinding 的菜单深度。 默认值为 -1,指示未设置此属性。

属性

示例

下面的代码示例演示如何使用 Depth 属性指定应用 MenuItemBinding 对象的菜单深度。 若要使此示例正常工作,必须将下面的示例 XML 数据复制到名为MenuDepth.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>MenuItemBinding Depth Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Depth Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <databindings>
        
          <asp:menuitembinding depth="0"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding depth="1"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding depth="2"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </databindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="MenuDepth.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>MenuItemBinding Depth Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Depth Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <databindings>
        
          <asp:menuitembinding depth="0"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding depth="1"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding depth="2"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </databindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="MenuDepth.xml"
        runat="server"/> 

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

下面的代码是上一个示例的示例站点地图数据。

<MapNode ImageUrl="~\Images\Home.gif"

Title="Home"

Description="Root Page"

ToolTip="Home Page">

<MapNode ImageUrl="~\Images\Music.gif"

Title="Music"

Description="Music Category"

ToolTip="Music Page">

<MapNode ImageUrl="~\Images\Classical.gif"

Title="Classical"

Description="Classical Section"

ToolTip="Classical Page"/>

<MapNode ImageUrl="~\Images\Rock.gif"

Title="Rock"

Description="Rock Section"

ToolTip="Rock Page"/>

<MapNode ImageUrl="~\Images\Jazz.gif"

Title="Jazz"

Description="Jazz Section"

ToolTip="Jazz Page"/>

</MapNode>

<MapNode ImageUrl="~\Images\Movies.gif"

Title="Movies"

Description="Movies Category"

ToolTip="Movies Page">

<MapNode ImageUrl="~\Images\Action.gif"

Title="Action"

Description="Action Section"

ToolTip="Action Page"/>

<MapNode ImageUrl="~\Images\Drama.gif"

Title="Drama"

Description="Drama Section"

ToolTip="Drama Page"/>

<MapNode ImageUrl="~\Images\Musical.gif"

Title="Musical"

Description="Musical Section"

ToolTip="Musical Page"/>

</MapNode>

</MapNode>

注解

创建 MenuItemBinding 对象时,必须指定绑定的条件。 条件指示数据项何时应绑定到菜单项。 可以指定 Depth 属性、 DataMember 属性或两者。

使用 Depth 属性指定应用 MenuItemBinding 对象的菜单深度。 例如,以下 MenuItemBinding 声明将数据源的名称和 ID 字段分别绑定到 Text 深度为 0 的所有菜单项的和 Value 属性:

<asp:MenuItemBinding Depth="0" TextField="Name" ValueField="ID">  

有时,可能需要创建一个菜单项绑定,该绑定同时指定深度和数据成员。 当数据源包含具有相同数据成员值的不同级别的项时,通常会使用此值。 例如,可以在 XML 文件中的不同 <Item> 级别显示元素。 以下 MenuItemBinding 声明演示如何指定应用于不同菜单深度相同数据成员的菜单项绑定:

<asp:MenuItemBinding DataMember="Item" Depth="1" TextField="Title">

<asp:MenuItemBinding DataMember="Item" Depth="2" TextField="ISBN">

如果未定义菜单项绑定且没有深度和数据成员,菜单项绑定将应用于菜单中的所有菜单项。 当所有数据项具有相同的属性并且应以相同的方式显示(无论菜单深度如何)时,通常会使用此方法。

建立绑定条件后,可以绑定可绑定到值的对象的属性 MenuItem 。 可以绑定到数据项的字段或静态值。 绑定到静态值时,应用该对象的所有 MenuItem 对象 MenuItemBinding 共享相同的值。 绑定到字段的属性包含数据源中字段的值。

如果定义了冲突 MenuItemBinding 对象,该 Menu 控件将按以下优先级顺序应用菜单项绑定:

  1. MenuItemBinding定义和数据成员并匹配的对象。

  2. MenuItemBinding仅定义数据成员并匹配的对象。

  3. MenuItemBinding仅定义和匹配深度的对象。

  4. MenuItemBinding定义深度和数据成员的对象。 (此类型的菜单项绑定应用于 menu.)

  5. MenuItemBinding数据源中没有匹配的对象。 在这种情况下,数据项方法返回ToString()的值随后绑定到Text应用对象的菜单项MenuItemBinding的属性Value

适用于

另请参阅