mysitemappath.ascx.cs

来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 82 行

CS
82
字号
/* 
 * MySiteMapPath.ascx.cs @Microsoft Visual Studio 2008 <.NET Framework 3.5>
 * AfritXia
 * 2008-01-30
 * 
 * Copyright(c) http://www.AfritXia.NET/
 * 
 */

using System;
using System.Web;

namespace NET.AfritXia.MyHome.HomeStart.PageCtrls
{
	/// <summary>
	/// 自定义站点地图控件
	/// </summary>
	public partial class MySiteMapPath : System.Web.UI.UserControl
	{
		/// <summary>
		/// 控件初始化函数
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		protected void Page_Init(object sender, EventArgs e)
		{
			this.m_aspSiteMapPath.Provider.SiteMapResolve += new SiteMapResolveEventHandler(this.Provider_SiteMapResolve);
		}

		/// <summary>
		/// 修改站点地图数据
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		/// <returns></returns>
		private SiteMapNode Provider_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
		{
			if (e.Provider.CurrentNode == null)
				return null;

			SiteMapNode currNode = e.Provider.CurrentNode.Clone(true);
			SiteMapNode tempNode = currNode;

			if (this.IsVisitPage("ArticleView.aspx"))
			{
				if (tempNode != null)
				{
					// 设置导航链接
					tempNode.Url += String.Format("?ArticleUID={0}", this.GetArticleUID());
				}
			}

			return currNode;
		}

		/// <summary>
		/// 获取论坛主题 ID
		/// </summary>
		/// <returns></returns>
		private int GetArticleUID()
		{
			return Convert.ToInt32(HttpContext.Current.Request.QueryString["ArticleUID"]);
		}

		/// <summary>
		/// 是否正在浏览指定页面
		/// </summary>
		/// <param name="pageName">页面名称</param>
		/// <returns></returns>
		private bool IsVisitPage(string pageName)
		{
			// 以 '/' 分割文件路径
			string[] tempStrings = HttpContext.Current.Request.FilePath.Split('\\', '/');

			// 获取请求页面名称
			string requestPage = tempStrings[tempStrings.Length - 1];

			// 比较页面名称
			return String.Compare(requestPage, pageName, true) == 0;
		}
	}
}

⌨️ 快捷键说明

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