剖析ASP.NET2.0导航功能之控制地图信息
2005-12-16 17:02:23 来源:WEB开发网 閵嗭拷

核心提示:一、 简介任何由多个页面组成的网站都需要某种导航用户接口,这是用两步来创建的,剖析ASP.NET2.0导航功能之控制地图信息,首先,必须定义站点的逻辑结构;然后,在这个事件处理器中,你可以做任何服务器端所需要的处理,添加用户接口元素来允许用户在站点结构的各个部分之间来回移动,在asp.net 2.0以前
一、 简介
任何由多个页面组成的网站都需要某种导航用户接口,这是用两步来创建的。首先,必须定义站点的逻辑结构;然后,添加用户接口元素来允许用户在站点结构的各个部分之间来回移动。在asp.net 2.0以前,要求开发者自己来解决这两个问题。然而,到了版本2.0以后,ASP.NET提供了一个简单的方法来定义一站点的结构并且包括大量的Web控件-专门设计来显示站点导航用户接口。
在上一篇中我们分析了怎样通过导航Web控件来创建Web.sitemap xml站点地图文件以及怎样显示站点导航信息,这包括:
·SiteMapPath,它显示一个breadcrumb(Home>Electronics>XBOX)
·TreeView,它显示一个可折迭的垂直显示的树,用于显示整个站点地图层次
·Menu,它显示一个水平或垂直对齐的菜单
上一篇中只对站点地图文件和导航Web控件的功能和能力提供了一个粗略介绍。在这一部分里,我们将把注意力转到编程地控制站点地图信息,并详细地分析一下SiteMapPath导航Web控件。
二、 站点地图
本文中的示例使用在第一部分中创建的站点地图。你可以在第一部分看到该站点地图XML文件的精确的句法或在本文最后下载下来。站点结构的图形化表示使用于这些示例中,见下图:

[<asp:HyperLink ID="lnkUp" runat="server">Up</asp:HyperLink>] |
[<asp:HyperLink ID="lnkNext" runat="server">Next</asp:HyperLink>] 主页面的Page_Load事件处理器看上去如下: If SiteMap.CurrentNode IsNot Nothing Then
'设置next/previous/up链接
If SiteMap.CurrentNode.PreviousSibling IsNot Nothing Then
lnkPrev.NavigateUrl = SiteMap.CurrentNode.PreviousSibling.Url
lnkPrev.Text = "< Prev (" & SiteMap.CurrentNode.PreviousSibling.Title & ")"
Else
lnkPrev.NavigateUrl = String.Empty
lnkPrev.Text = "< Prev"
End If
If SiteMap.CurrentNode.ParentNode IsNot Nothing Then
lnkUp.NavigateUrl = SiteMap.CurrentNode.ParentNode.Url
lnkUp.Text = "Up (" & SiteMap.CurrentNode.ParentNode.Title & ")"
Else
lnkUp.NavigateUrl = String.Empty
lnkUp.Text = "Up"
End If
If SiteMap.CurrentNode.NextSibling IsNot Nothing Then
lnkNext.NavigateUrl = SiteMap.CurrentNode.NextSibling.Url
lnkNext.Text = "(" & SiteMap.CurrentNode.NextSibling.Title & ") Next >"
Else
lnkNext.NavigateUrl = String.Empty
lnkNext.Text = "Next >"
End If
End If 这将把三个超级链接Next,Up和Previous添加到从主页面继承的每一个页面,参见下图的快照。

<RootNodeTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
Text='<%# Eval("title") %>'
CommandArgument='<%# Eval("url") %>'
OnCommand="LinkButton1_Command">
</asp:LinkButton>
</RootNodeTemplate>
</asp:SiteMapPath> 这个标记添加一LinkButton控件到SiteMapPath-它的Text属性被分配给相应SiteMapNode的Title属性。当点击该LinkButton时,将导致一个回寄并且该控件的Command事件激发-这将激活LinkButton1_Command事件处理器。SiteMapNode的Url属性被通过CommandArgument属性传递到这个事件处理器。在这个事件处理器中,你可以做任何服务器端所需要的处理,然后通过Response.Redirect(e.CommandArgument)把用户引导到他们所请求的页面上去。
- ››asp.net页面弄成伪静态页面
- ››Asp.net 中将汉字转换成拼音的方法
- ››ASP.NET及JS中的cookie基本用法
- ››ASP.NET获取MS SQL Server安装实例
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››ASP.NET中获取用户控件中控件的ID
- ››ASP.NET中FileBytes写成文件并存档
更多精彩
赞助商链接