📄 extendedsitemappath.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 + -