惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
Cisco Talos Blog
Cisco Talos Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Scott Helme
Scott Helme
Project Zero
Project Zero
E
Exploit-DB.com RSS Feed
S
Secure Thoughts
K
Kaspersky official blog
L
Lohrmann on Cybersecurity
NISL@THU
NISL@THU
WordPress大学
WordPress大学
N
News and Events Feed by Topic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
小众软件
小众软件
P
Privacy & Cybersecurity Law Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
Hacker News: Ask HN
Hacker News: Ask HN
AWS News Blog
AWS News Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hacker News: Front Page
F
Full Disclosure
Latest news
Latest news
Schneier on Security
Schneier on Security
The Hacker News
The Hacker News
T
Troy Hunt's Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Jina AI
Jina AI
Martin Fowler
Martin Fowler
P
Proofpoint News Feed
TaoSecurity Blog
TaoSecurity Blog
G
GRAHAM CLULEY
Forbes - Security
Forbes - Security
V
V2EX - 技术
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Vulnerabilities – Threatpost
C
Cyber Attacks, Cyber Crime and Cyber Security
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
P
Privacy International News Feed
C
Check Point Blog
N
News and Events Feed by Topic

博客园 - point.deng

Pinax安装笔记 CuteEditor使用心得 asp.net 中的default button 悬浮的购物车 - point.deng - 博客园 DIV+CSS实现圆角 欢迎使用我的控件 有用的SQL语句,更新中~ asp.net 实现多语言界面 关于WebService中SOAP扩展求助~~ - point.deng - 博客园 同一账号多次登录 WEB自定义控件小记 C# 使用HOOK 小记 视频转为flv和图片 Asp.net上传图片产生预览效果(转) asp.net2.0用户和角色管理 javascript 练习 Ajax示例 asp.net开发小技巧 Master Page主题以及皮肤的使用
ASP.NET 2.0网站快速导航
point.deng · 2008-02-01 · via 博客园 - point.deng

谈到这个话题可以大多数人都知道什么是导航吧,传统的导航就是在每个页面定死,一但页面目录结构发生变化,那么每个页面都要做改动,而且这是一个非常烦的事情,2.0中有了三个非常有用的控件

一、SiteMapPath,它是最简单的,也是最常见的,只要把它从导航中拖进页面就行了,当然还是要写XML配置文件的,2.0已经把XML应用得非常高的一个高度了,这个配置文件一会讲。只要放置好控件后,当网站转到别的地方,控件会自动显示当前页到主页的路径。

二、Menu,它可以由配置文件显示整个网站的结构,让用户点击不同的连接,从而转到不同的页面,它除了配置文件以外,还要一个SiteMapDataSource数据源,这个数据源会自动找到网站地图的配置文件,

三、TreeView,很明显,就是分层显示各类数据,如,很多网站上看到的,左边一个树形结构,当点击不同的节点的时候,右边会显示不同的网页。它可以静态地添加节点,子节点等,也可以动态(编程)的形式添加各类节点,这里主要说的是使用配置文件(网站地图)作为它的数据源,通过它显示不同的目录结构,它同样要一个SiteMapDataSource数据库源,只要把树的数据源设为这个SiteMapDataSource就可以了。

以上三个导航控件都要一个配置文件,在asp.net2.0中,专门有这样一个配置文件,叫做“网站地图”,在添加中可以看到Web.sitemap,完成这个文件的编写,SiteMapDataSource可以自动找到网站地图,读取并按一定的格式显示它,这里要说一下它的编写规则。

在添加进来的时候,可以看出,是一个标准的XML文件,每一个siteMapNode都是一个页面,也是它的一个节点,一个节点有几个属性须要设置,url:页面的目录地址,title:显示在页面上的字符,description:可选,相当于控件的title属性,siteMapNode是可以无限嵌套的,所以,它可以表示一个完整的网站结构,从而实现导航。当看到这里,是不是觉得一切都是那么的简单呢~呵呵。加个示例:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="~/Default3.aspx" title="主页" description="主页">
      <siteMapNode url="~/a" title="a" description="aaaa">

        <siteMapNode url="~/a/Default.aspx" title="a的1" description="a的1" />
        <siteMapNode url="~/a/Default2.aspx" title="a的2" description="a的2" />
      </siteMapNode>

      <siteMapNode url="~/b" title="b" description="bbb">

        <siteMapNode url="~/b/Default.aspx" title="b的1" description="b的1" />
        <siteMapNode url="~/b/Default2.aspx" title="b的2" description="b的2" />
      </siteMapNode>

    </siteMapNode>
</siteMap>