源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用UserControl做网站导航条的思路 分析

  • 时间:2022-03-02 03:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用UserControl做网站导航条的思路 分析
网址其实就是目录文件的影射。因此只要拆分URL,并且根据URL的层级关系进行循环,就可以得到当前导航文件的目录。 1、建立数据库表:Navigate
列名 数据类型 说明
id int
parentId int 父ID
root int 层级,0代表根目录,最顶层
pathName varchar(50) (URL)路径名称
navName varchar(50) (栏目)导航名称
2、建立用户控件 navigate.ascx ----------------------------------------------------------- <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Navigate.ascx.cs" Inherits="UC_Navigate" %> <div style="display:block;margin-top:5px;margin-left:3px;margin-bottom:5px;">      您当前的位置:<a href="/index.aspx">首页</a>        >>       <asp:Label ID="lblNavigate" runat="server"></asp:Label>       <asp:Label ID="lblTitle" runat="server"></asp:Label> </div> 3、用户控件的CS后台文件 navigate.ascx.cs ----------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using Bai51.Data; public partial class UC_Navigate : System.Web.UI.UserControl {     private string localUrl="[url=http://localhost:8085/]http://localhost:8085[/url]";     private string title;     private DataSet ds;     private DataTable dt;     protected void Page_Load(object sender, EventArgs e)     {         #region -- 获取导航信息表内容(缓存) --         ds=(DataSet)Cache["dsNavigateCache"];         if(ds==null)        {          ds=SqlComd.CreateSqlDataSet("select * from navigate","dsNavigate");           Cache.Insert("dsNavigateCache",ds,null,System.Web.Caching.Cache.NoAbsoluteExpiration,TimeSpan.FromHours(24));        }        dt=ds.Tables[0];         #endregion          #region -- 生成导航信息 --         //分割当前URL地址         string[] webUrl = System.Web.HttpContext.Current.Request.Path.Split(new char[] { '/' });         int len = webUrl.Length - 1;         //层级循环         string strUrl = localUrl + "/";         string strNavigate = "";         string parenId = "0";         for (int i = 1; i < len; i++)         {             string sql = "root=" + Convert.ToString(i-1) + " and pathName='" + webUrl[i] + "' and parentId=" + parenId;             DataRow[] rows = dt.Select(sql);             //循环连接地址             strUrl += (webUrl[i] + "/");             strNavigate += "<a href='" + strUrl + "'>" + rows[0]["navName"].ToString() + "</a>" + " >> ";             //保存父ID             parenId = rows[0]["Id"].ToString();         }        #endregion         lblNavigate.Text=strNavigate;         lblTitle.Text=title ;     }     #region --控件属性 --     public string LocalUrl     {         get{return  localUrl;}         set{ localUrl=value ;}     }     public string Title     {         get { return title; }         set { title = value; }     }     #endregion    } 4、使用方法 ----------------------------------------------------------- 在页面中拖入 Navigate.ascx 用户控件,命名为"navBar"。 在后台代码中写入当前文件的导航名称即可。       navBar.Title = "本页面是XX栏目";
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部