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

📄 extendedsitemappath.cs

📁 动易SiteFactory&#8482 网上商店系统1.0源代码
💻 CS
字号:
namespace PowerEasy.Controls
{
    using PowerEasy.Components;
    using System;
    using System.ComponentModel;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    [ToolboxData("<{0}:ExtendedSiteMapPath ID=\"Esp\" runat=\"server\" />"), Themeable(true)]
    public class ExtendedSiteMapPath : SiteMapPath
    {
        private void AddLiteralAfterCurrentNode(SiteMapNodeItem item)
        {
            if (item.SiteMapNode.ChildNodes != null)
            {
                SiteMapNodeItem item2 = new SiteMapNodeItem(item.ItemIndex, SiteMapNodeItemType.PathSeparator);
                SiteMapNodeItemEventArgs e = new SiteMapNodeItemEventArgs(item2);
                this.InitializeItem(item2);
                this.OnItemCreated(e);
                item.Controls.Add(item2);
                Literal child = new Literal();
                child.Mode = LiteralMode.PassThrough;
                child.Text = this.AdditionalNode;
                item.Controls.Add(child);
            }
        }

        protected override void InitializeItem(SiteMapNodeItem item)
        {
            base.InitializeItem(item);
            if ((item.ItemType == SiteMapNodeItemType.Current) && !string.IsNullOrEmpty(this.AdditionalNode))
            {
                this.AddLiteralAfterCurrentNode(item);
            }
        }

        protected override void OnItemCreated(SiteMapNodeItemEventArgs e)
        {
            base.OnItemCreated(e);
            if (e.Item.ItemType == SiteMapNodeItemType.Root)
            {
                if (e.Item.Controls[0] is Literal)
                {
                    Literal literal = e.Item.Controls[0] as Literal;
                    literal.Mode = LiteralMode.PassThrough;
                    literal.Text = literal.Text.Replace("{SiteName}", SiteConfig.SiteInfo.SiteName);
                }
                else if (e.Item.Controls[0] is HyperLink)
                {
                    HyperLink link = e.Item.Controls[0] as HyperLink;
                    link.NavigateUrl = SiteConfig.SiteInfo.SiteUrl;
                    link.ToolTip = link.ToolTip.Replace("{SiteName}", SiteConfig.SiteInfo.SiteName);
                    link.Text = link.Text.Replace("{SiteName}", SiteConfig.SiteInfo.SiteName);
                }
            }
            if (!string.IsNullOrEmpty(this.CurrentNode) && (e.Item.ItemType == SiteMapNodeItemType.Current))
            {
                if (e.Item.Controls[0] is Literal)
                {
                    Literal literal2 = e.Item.Controls[0] as Literal;
                    literal2.Mode = LiteralMode.PassThrough;
                    literal2.Text = this.CurrentNode;
                }
                else if (e.Item.Controls[0] is HyperLink)
                {
                    HyperLink link2 = e.Item.Controls[0] as HyperLink;
                    link2.NavigateUrl = null;
                    link2.ToolTip = null;
                    link2.Text = this.CurrentNode;
                }
            }
            if ((!string.IsNullOrEmpty(this.ParentNodeUrl) && (e.Item.ItemType == SiteMapNodeItemType.Parent)) && (e.Item.Controls[0] is HyperLink))
            {
                HyperLink link3 = e.Item.Controls[0] as HyperLink;
                link3.NavigateUrl = this.ParentNodeUrl;
            }
        }

        [Bindable(true), Category("自定义"), DefaultValue(""), Description("当前节点后附加的HTML节点"), Localizable(true)]
        public string AdditionalNode
        {
            get
            {
                string str = (string) this.ViewState["AdditionalNode"];
                if (str != null)
                {
                    return str;
                }
                return string.Empty;
            }
            set
            {
                this.ViewState["AdditionalNode"] = value;
            }
        }

        [Localizable(true), Bindable(true), DefaultValue(""), Description("当前节点的HTML节点"), Category("自定义")]
        public string CurrentNode
        {
            get
            {
                string str = (string) this.ViewState["CurrentNode"];
                if (str != null)
                {
                    return str;
                }
                return string.Empty;
            }
            set
            {
                this.ViewState["CurrentNode"] = value;
            }
        }

        [Localizable(true), Bindable(true), Category("自定义"), DefaultValue(""), Description("当前节点的父节点的URL地址")]
        public string ParentNodeUrl
        {
            get
            {
                string str = (string) this.ViewState["ParentNodeUrl"];
                if (str != null)
                {
                    return str;
                }
                return string.Empty;
            }
            set
            {
                this.ViewState["ParentNodeUrl"] = value;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -