方法4:访问二级栏目的时候重新显示一级栏目
该方法是访问二级栏目时调用的,访问二级栏目的时候,其父级栏目需要加粗并改变单元格背景。该方法命令为:showFirstMenuBySecondFile(strNowViewFile)。由于该方法与showFirstMenuByFile()方法大同小异,这里就不详细介绍了。具体可以查看源代码。
方法5:访问二级栏目的时候显示二级栏目
该方法是访问二级栏目的时候调用的,用来显示所有二级栏目,加粗当前访问的二级栏目,并改变当前位置,方法命名为:showSecondMenuByGrade(strNowViewFile)。该方法与showSecondMenu()方法也是大同小异,所以也不详细介绍了。
接下来只要在Page_Load事件中通过显示或隐藏一级栏目和二级栏目就能达到图上的效果。Page_Load事件的代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
//先根据地址栏的地址获取访问的文件,如:default.aspx
//获得url的相对路径
string strRequestUrl = Request.Url.AbsolutePath.ToString().Trim();
//获得当前访问的文件名
string strNowViewFile = strRequestUrl.Substring((strRequestUrl.LastIndexOf(@"/") + 1)).Trim();
//根据取得的访问文件查找其对应的记录,以判断当前访问一级栏目还是二级栏目
//读取当前访问文件名对应的那条信息
DataView dv = ReadXmlDataView("HeadMenu.xml","LinkUrl = '" + strNowViewFile + "'","OrderID asc");
//当前访问栏目的上级栏目名称
string strParent = dv[0]["Parents"].ToString().Trim();
//如果访问的是首页
if(strNowViewFile.Equals("default.aspx") || strNowViewFile == null)
{
//显示所有一级栏目
showFirstMenu();
}
//如果访问的是一级栏目,并且不是首页
else if(strParent.Equals("root"))
{
//重新显示一级栏目
showFirstMenuByFile(strNowViewFile);
//读取所有属于该一级栏目的二级栏目
showSecondMenu(strNowViewFile);
}
//否则当前访问的就是二级栏目
else
{
//显示一级栏目,同时加粗二级栏目所属的一级栏目,并改变该一级栏目的单元格背景
showFirstMenuBySecondFile(strNowViewFile);
//显示二级栏目,加粗并在当前访问的二级栏目名称前加。符号
showSecondMenuByGrade(strNowViewFile);
}
}
}
以上就是顶部导航自定义控件的核心部份了,看完了后是不是觉得很简单?由于写的时候是为了应付项目的需要,因此匆匆忙忙就完工了,大家如果发现什么BUG,或是有什么好的意见可以联系我。控件的具体用法请看压缩包内的说明。