次の方法で共有


SiteMapNodeItem(Int32, SiteMapNodeItemType) コンストラクター

定義

指定したインデックスとSiteMapNodeItemTypeを使用して、SiteMapNodeItem クラスの新しいインスタンスを初期化します。

public:
 SiteMapNodeItem(int itemIndex, System::Web::UI::WebControls::SiteMapNodeItemType itemType);
public SiteMapNodeItem(int itemIndex, System.Web.UI.WebControls.SiteMapNodeItemType itemType);
new System.Web.UI.WebControls.SiteMapNodeItem : int * System.Web.UI.WebControls.SiteMapNodeItemType -> System.Web.UI.WebControls.SiteMapNodeItem
Public Sub New (itemIndex As Integer, itemType As SiteMapNodeItemType)

パラメーター

itemIndex
Int32

SiteMapNodeItem オブジェクトの追跡にSiteMapPath コントロールが使用するControls コレクション内のインデックス。

itemType
SiteMapNodeItemType

このSiteMapNodeItemが表すSiteMapNodeの機能型。

次のコード例では、 SiteMapNodeItem オブジェクトを作成する方法を示します。 このコード例は、 SiteMapPath クラスに提供されるより大きな例の一部です。

private void AddDropDownListAfterCurrentNode(SiteMapNodeItem item) {

    SiteMapNodeCollection childNodes = item.SiteMapNode.ChildNodes;

    // Only do this work if there are child nodes.
    if (childNodes != null) {

        // Add another PathSeparator after the CurrentNode.
        SiteMapNodeItem finalSeparator =
            new SiteMapNodeItem(item.ItemIndex,
                                SiteMapNodeItemType.PathSeparator);

        SiteMapNodeItemEventArgs eventArgs =
            new SiteMapNodeItemEventArgs(finalSeparator);

        InitializeItem(finalSeparator);
        // Call OnItemCreated every time a SiteMapNodeItem is
        // created and initialized.
        OnItemCreated(eventArgs);

        // The pathSeparator does not bind to any SiteMapNode, so
        // do not call DataBind on the SiteMapNodeItem.
        item.Controls.Add(finalSeparator);

        // Create a DropDownList and populate it with the children of the
        // CurrentNode. There are no styles or templates that are applied
        // to the DropDownList control. If OnSelectedIndexChanged is raised,
        // the event handler redirects to the page selected.
        // The CurrentNode has child nodes.
        DropDownList ddList = new DropDownList();
        ddList.AutoPostBack = true;

        ddList.SelectedIndexChanged += new EventHandler(this.DropDownNavPathEventHandler);

        // Add a ListItem to the DropDownList for every node in the
        // SiteMapNodes collection.
        foreach (SiteMapNode node in childNodes) {
            ddList.Items.Add(new ListItem(node.Title, node.Url));
        }

        item.Controls.Add(ddList);
    }
}
Private Sub AddDropDownListAfterCurrentNode(item As SiteMapNodeItem)

   Dim childNodes As SiteMapNodeCollection = item.SiteMapNode.ChildNodes

   ' Only do this work if there are child nodes.
   If Not (childNodes Is Nothing) Then

      ' Add another PathSeparator after the CurrentNode.
      Dim finalSeparator As New SiteMapNodeItem(item.ItemIndex, SiteMapNodeItemType.PathSeparator)

      Dim eventArgs As New SiteMapNodeItemEventArgs(finalSeparator)

      InitializeItem(finalSeparator)
      ' Call OnItemCreated every time a SiteMapNodeItem is
      ' created and initialized.
      OnItemCreated(eventArgs)

      ' The pathSeparator does not bind to any SiteMapNode, so
      ' do not call DataBind on the SiteMapNodeItem.
      item.Controls.Add(finalSeparator)

      ' Create a DropDownList and populate it with the children of the
      ' CurrentNode. There are no styles or templates that are applied
      ' to the DropDownList control. If OnSelectedIndexChanged is raised,
      ' the event handler redirects to the page selected.
      ' The CurrentNode has child nodes.
      Dim ddList As New DropDownList()
      ddList.AutoPostBack = True

      AddHandler ddList.SelectedIndexChanged, AddressOf Me.DropDownNavPathEventHandler

      ' Add a ListItem to the DropDownList for every node in the
      ' SiteMapNodes collection.
      Dim node As SiteMapNode
      For Each node In  childNodes
         ddList.Items.Add(New ListItem(node.Title, node.Url))
      Next node

      item.Controls.Add(ddList)
   End If
End Sub

注釈

PathDirectionRootToCurrentされている場合は、Controls コレクションの末尾に、サイト ナビゲーション階層の各より深いレベルの項目を追加できます。 ただし、 PathDirection プロパティが CurrentToRoot に設定されている場合は、より深いレベルの各ノードを Controls コレクションの先頭に挿入する必要があります。

適用対象

こちらもご覧ください