方法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,或是有什么好的意见可以联系我。控件的具体用法请看压缩包内的说明。
|