SiteMapNodeItem.ItemIndex Property
.NET Framework 3.0
Retrieves the index that the SiteMapPath control uses to track and manage the SiteMapNodeItem in its internal collections.
Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)
Assembly: System.Web (in system.web.dll)
The following code example demonstrates how to get the ItemIndex property and use it to create a SiteMapNodeItem path separator. PathSeparator node items are created at the same index as the previous node. This code example is part of a larger example provided for the SiteMapPath class.
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 void AddDropDownListAfterCurrentNode(SiteMapNodeItem item)
{
SiteMapNodeCollection childNodes = item.get_SiteMapNode().
get_ChildNodes();
// Only do this work if there are child nodes.
if (childNodes != null) {
// Add another PathSeparator after the CurrentNode.
SiteMapNodeItem finalSeparator = new SiteMapNodeItem(item.
get_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.get_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.set_AutoPostBack(true);
ddList.add_SelectedIndexChanged(new EventHandler(this.
DropDownNavPathEventHandler));
// Add a ListItem to the DropDownList for every node in the
// SiteMapNodes collection.
for (int iCtr = 0; iCtr < childNodes.get_Count(); iCtr++) {
SiteMapNode node = (SiteMapNode)childNodes.get_Item(iCtr);
ddList.get_Items().Add(new ListItem(node.get_Title(), node.
get_Url()));
}
item.get_Controls().Add(ddList);
}
} //AddDropDownListAfterCurrentNode