ASP.NET 2.0站点地图搭建网站导航结构(3)
2008-02-22 09:36:17来源:互联网 阅读 ()
最后,把一个标签添加到每一个其它Web表单并且按表格6所示设置它的Text属性。
| Web表单名 | Label的Text属性 |
| ~/Contact.aspx | Contact Us |
| ~/Products/Product1.aspx | First Product Details |
| ~/Products/Product2.aspx | Second Product Details |
| ~/Services/Service1.aspx | First Service Details |
| ~/Services/Service2.aspx | Second Service Details |
现在,从根文件夹下运行Default.aspx并且导航到Product1.aspx页面。图7显示了Web表单的示例运行情况。
![]() 图7:Product1.aspx的示例运行 |
注意,web.sitemap文件的title和URL属性是怎样用于生成“breadcrumbs”的。另外,还要注意,父级是怎样随着当前页面标题一起显示的。试一试导航到各种页面并观察SiteMapPath控件。
四、 使用SiteMap数据源控件
站点地图的使用并不仅限于SiteMapPath控件。你还可以把站点地图依附到可导航控件(例如TreeView)上。在下列例子中,你将使用相同的站点地图文件来实现与一个TreeView控件的绑定。
把一个新的Web表单SiteMapDataSourceDemo.aspx添加到网站上。然后,把一个SiteMap数据源控件(SiteMapDataSource1)和一个TreeView控件(TreeView1)拖动到表单上。把这个TreeView控件的DataSourceID属性设置为SiteMapDataSource1。另外,还要把该TreeView控件的ShowLines属性设置为true。下面是SiteMapDataSourceDemo.aspx页面中的完整的标记:
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SiteMapDataSourceDemo.aspx.cs" Inherits="SiteMapDataSourceDemo" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" ShowLines="True"> </asp:TreeView> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> </form> </body> </html> |
现在,运行这个Web表单以观察相同的导航结构是怎样被自动生成到TreeView中的(见图8)。
![]() 图8:把网站地图文件绑定到一个TreeView控件 |
在SiteMapPath或TreeView控件中显示站点地图数据效果太好了。然而,有时你可能需要设计定制生成逻辑。例如,你可能想开发一个定制的导航控件—它仅为了垂直地显示其父级。在这样的情况下,你需要以编程方式来存取这个站点地图文件。SiteMap类允许你准确地实现这一点。
这个SiteMap路径具有两个重要的属性:RootNode和CurrentNode。它们的类型都是SiteMapNode,并且它们都能使你分别参考站点地图的根结点和当前结点。表格7列举了SiteMapNode类的一些重要的属性。
| 属性 | 描述 |
| ChildNodes | 代表当前结点的所有子结点的集合 |
| HasChildNodes | 指示是否站点地图结点具有子结点(true/false) |
| Title | 返回在站点地图文件中指定的title属性的值 |
| Url | 返回在站点地图文件中指定的url属性的值 |
| Description | 返回在站点地图文件中指定的description属性的值 |
| ParentNode | 指出当前结点的父站点地图结点的参考 |
下面的示例使用了SiteMap路径来存取一个站点地图文件的单个结点。然后,以编程方式把它们添加到一个TreeView控件。
添加一个称为SiteMapCustom.aspx的Web表单。然后,把一个TreeView控件拖动到其上。把列表代码添加到这个Web表单的Page_Load事件:
| protected void Page_Load(object sender, EventArgs e) { int count = SiteMap.RootNode.ChildNodes.Count; for (int i = 0; i < count; i ) { SiteMapNode smNode=SiteMap.RootNode.ChildNodes[i]; TreeNode tvNode = new TreeNode(smNode.Title, "", "", smNode.Url, ""); TreeView1.Nodes.Add(tvNode); if (smNode.HasChildNodes) { int childCount=smNode.ChildNodes.Count; for (int j = 0; j < childCount; j ) { SiteMapNode smChildNode = smNode.ChildNodes[j]; TreeNode tvChildNode = new TreeNode(smChildNode.Title, "", "", smChildNode.Url, ""); tvNode.ChildNodes.Add(tvChildNode); } } } } 标签: 版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
相关文章
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设 网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源 网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash 热门词条
最新资讯
热门关注
|


