📄 customsitemappath.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
public class CustomSiteMapPath : SiteMapPath
{
protected override void InitializeItem(SiteMapNodeItem objItem)
{
// 只处理当前节点
if (objItem.ItemType == SiteMapNodeItemType.Current)
{
HyperLink objLink = new HyperLink();
// 禁用主题
objLink.EnableTheming = false;
// 如果.SiteMapPath被禁用,则禁用该链接控件
objLink.Enabled = this.Enabled;
// 设置链接控件的路径和标题
objLink.NavigateUrl = objItem.SiteMapNode.Url;
objLink.Text = objItem.SiteMapNode.Title;
if (ShowToolTips)
{
objLink.ToolTip = objItem.SiteMapNode.Description;
}
// 添加该链接控件到控件集合中.
objItem.Controls.Add(objLink);
//调用增加下拉列表方法
DropDownListDisplay(objItem);
}
else
{
base.InitializeItem(objItem);
}
}
private void DropDownListDisplay(SiteMapNodeItem objItem)
{
SiteMapNodeCollection childNodes = objItem.SiteMapNode.ChildNodes;
// 判断当前节点是否有子节点
if (childNodes != null)
{
SiteMapNodeItem finalSeparator = new SiteMapNodeItem(objItem.ItemIndex,SiteMapNodeItemType.PathSeparator);
SiteMapNodeItemEventArgs eventArgs = new SiteMapNodeItemEventArgs(finalSeparator);
InitializeItem(finalSeparator);
OnItemCreated(eventArgs);
objItem.Controls.Add(finalSeparator);
// 创建一个下拉列表控件,显示当前节点的所有子节点导航信息
DropDownList ddList = new DropDownList();
// 遍历增加下拉列表的所有元素
foreach (SiteMapNode node in childNodes)
{
ddList.Items.Add(new ListItem(node.Title, node.Url));
}
objItem.Controls.Add(ddList);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -