⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 customsitemappath.cs

📁 asp。net 2.0宝典一书源码 全书源码给大家共享
💻 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 + -