ASP.NET Tutorial/Development/SiteMapDataSource
Содержание
Hiding the starting node.
<source lang="csharp">
<%@ 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">
Products
<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" />
</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></source>
Setting SiteMapDataSource Properties
<source lang="csharp">
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">
<asp:SiteMapPath id="SiteMapPath1" Runat="server" />
<asp:Menu id="Menu1" DataSourceID="srcSiteMap" StaticMenuItemStyle-CssClass="menuItem" DynamicMenuItemStyle-CssClass="menuItem" Runat="server" /> <asp:SiteMapDataSource id="srcSiteMap" ShowStartingNode="false" Runat="server" />
</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></source>
SiteMapDataSource representd a Site Map declaratively in a page
<source lang="csharp">
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">
<asp:SiteMapPath id="SiteMapPath1" Runat="server" />
<asp:TreeView id="TreeView1" DataSourceID="srcSiteMap" Runat="server" /> <asp:SiteMapDataSource id="srcSiteMap" Runat="server" />
</form>
</body> </html></source>