使用UserControl做网站导航条的思路 分析_asp.net教程-查字典教程网
使用UserControl做网站导航条的思路 分析
使用UserControl做网站导航条的思路 分析
发布时间:2016-12-29 来源:查字典编辑
摘要:网址其实就是目录文件的影射。因此只要拆分URL,并且根据URL的层级关系进行循环,就可以得到当前导航文件的目录。1、建立数据库表:Navig...

网址其实就是目录文件的影射。因此只要拆分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>

您当前的位置:<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="http://localhost:8085";

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栏目";

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类