ASP.NET Tutorial/Development/SiteMapDataSource
Версия от 15:30, 26 мая 2010; (обсуждение)
Hiding the starting node.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<style type="text/css">
.productList li
{
margin:5px;
}
</style>
<title>Our Products</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Products</h1>
<asp:BulletedList
id="bltProducts"
DisplayMode="HyperLink"
DataTextField="Title"
DataValueField="Url"
DataSourceID="srcSiteMap"
CssClass="productList"
Runat="server" />
<asp:SiteMapDataSource
id="srcSiteMap"
ShowStartingNode="false"
StartFromCurrentNode="true"
Runat="server" />
</div>
</form>
</body>
</html>
File: Web.sitemap
<siteMap xmlns="http://schemas.microsoft.ru/AspNet/SiteMap-File-1.0" >
<siteMapNode
url="Default.aspx"
title="Home"
description="The Home Page">
<siteMapNode
url="Default1.aspx"
title="Our Products"
description="Products that we offer">
<siteMapNode
url="FirstProduct.aspx"
title="First Product"
description="The description of the First Product" />
<siteMapNode
url="SecondProduct.aspx"
title="Second Product"
description="The description of the Second Product" />
</siteMapNode>
<siteMapNode
url="Default2.aspx"
title="Our Services"
description="Services that we offer">
<siteMapNode
url="FirstService.aspx"
title="First Service"
description="The description of the First Service"
metaDescription="The first service" />
<siteMapNode
url="SecondService.aspx"
title="Second Service"
description="The description of the Second Service" />
</siteMapNode>
</siteMapNode>
</siteMap>
Setting SiteMapDataSource Properties
ShowStartingNode enables you to hide the starting node.
StartFromCurrentNode enables you to return all nodes starting from the current node.
StartingNodeOffset enables you to specify a positive or negative offset from the current node.
StartingNodeUrl enables you to return all nodes, starting at a node associated with a specified URL.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<style type="text/css">
.menuItem
{
border:solid 1px black;
background-color:#eeeeee;
padding:4px;
margin:1px 0px;
}
</style>
<title>Our Services</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SiteMapPath
id="SiteMapPath1"
Runat="server" />
<hr />
<asp:Menu
id="Menu1"
DataSourceID="srcSiteMap"
StaticMenuItemStyle-CssClass="menuItem"
DynamicMenuItemStyle-CssClass="menuItem"
Runat="server" />
<asp:SiteMapDataSource
id="srcSiteMap"
ShowStartingNode="false"
Runat="server" />
</div>
</form>
</body>
</html>
File: Web.sitemap
<siteMap xmlns="http://schemas.microsoft.ru/AspNet/SiteMap-File-1.0" >
<siteMapNode
url="Default.aspx"
title="Home"
description="The Home Page">
<siteMapNode
url="Default1.aspx"
title="Our Products"
description="Products that we offer">
<siteMapNode
url="FirstProduct.aspx"
title="First Product"
description="The description of the First Product" />
<siteMapNode
url="SecondProduct.aspx"
title="Second Product"
description="The description of the Second Product" />
</siteMapNode>
<siteMapNode
url="Default2.aspx"
title="Our Services"
description="Services that we offer">
<siteMapNode
url="FirstService.aspx"
title="First Service"
description="The description of the First Service"
metaDescription="The first service" />
<siteMapNode
url="SecondService.aspx"
title="Second Service"
description="The description of the Second Service" />
</siteMapNode>
</siteMapNode>
</siteMap>
SiteMapDataSource representd a Site Map declaratively in a page
You can bind navigation controls such as the TreeView and Menu controls to a SiteMapDataSource control.
You can bind GridView or DropDownList control to a SiteMapDataSource control.
File: Web.sitemap
<siteMap xmlns="http://schemas.microsoft.ru/AspNet/SiteMap-File-1.0" >
<siteMapNode
url="Default.aspx"
title="Home"
description="The Home Page">
<siteMapNode
url="Default1.aspx"
title="Our Products"
description="Products that we offer">
<siteMapNode
url="FirstProduct.aspx"
title="First Product"
description="The description of the First Product" />
<siteMapNode
url="SecondProduct.aspx"
title="Second Product"
description="The description of the Second Product" />
</siteMapNode>
<siteMapNode
url="Default2.aspx"
title="Our Services"
description="Services that we offer">
<siteMapNode
url="FirstService.aspx"
title="First Service"
description="The description of the First Service"
metaDescription="The first service" />
<siteMapNode
url="SecondService.aspx"
title="Second Service"
description="The description of the Second Service" />
</siteMapNode>
</siteMapNode>
</siteMap>
The Site Map file represents a website with the following folder and page structure:
Default.aspx
Products
FirstProduct.aspx
SecondProduct.aspx
Services
FirstService.aspx
SecondService.aspx
File: Default.aspx
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Home</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SiteMapPath
id="SiteMapPath1"
Runat="server" />
<hr />
<asp:TreeView
id="TreeView1"
DataSourceID="srcSiteMap"
Runat="server" />
<asp:SiteMapDataSource
id="srcSiteMap"
Runat="server" />
</div>
</form>
</body>
</html>