Web.sitemap
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="Default.aspx" title="Home" description="" roles="user">
<siteMapNode title="Item1" roles="user">
<siteMapNode url="Page1.aspx" title="Page1" description="" roles="user"/>
</siteMapNode>
<siteMapNode title="Item2" roles="user">
<siteMapNode url="Page2.aspx" title="Page2" description="test" roles="user" />
<siteMapNode url="Page3.aspx" title="Page3" description="" roles="admin"/>
</siteMapNode>
<siteMapNode title="Item3" roles="guest">
<siteMapNode url="Page4.aspx" title="Page4" description="" roles="guest"/>
</siteMapNode>
</siteMapNode>
</siteMap>
Web.config
<system.web>
<siteMap enabled="true" defaultProvider="AspNetXmlSiteMapProvider">
<providers>
<clear />
<add siteMapFile="Web.sitemap"
name="AspNetXmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider" />
</providers>
</siteMap>
About.aspx
<%@ Page Title="About Us" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="About.aspx.cs" Inherits="TelerikLearningAsWell.About" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
About
</h2>
<p>
Put content here.
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
</p>
<asp:SiteMapDataSource ID="SiteMapDataSource1" ShowStartingNode="true" runat="server" SiteMapProvider="AspNetXmlSiteMapProvider"/>
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
<telerik:RadPanelBar runat="server" ID="RadPanelBar1"
onitemdatabound="RadPanelBar1_ItemDataBound">
<CollapseAnimation Type="None"></CollapseAnimation>
</telerik:RadPanelBar>
</asp:Content>
About.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TelerikLearningAsWell
{
public partial class About : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
RadPanelBar1.DataSource = SiteMapDataSource1;
RadPanelBar1.DataNavigateUrlField = "url";
RadPanelBar1.DataTextField = "title";
RadPanelBar1.DataBind();
}
protected void RadPanelBar1_ItemDataBound(object sender, Telerik.Web.UI.RadPanelBarEventArgs e)
{
e.Item.ToolTip = "Read more about " + (string)DataBinder.Eval(e.Item.DataItem, "description");
e.Item.Visible = false;
//string role = (string)DataBinder.Eval(e.Item.DataItem, "roles");
//You can have custom: e.Item.NavigateUrl = (e.Item.DataItem as SiteMapNode)["abc"];//abc is custom attribute
if ((e.Item.DataItem as SiteMapNode).Roles.Count>0
&& (e.Item.DataItem as SiteMapNode).Roles.Contains("user"))
{
e.Item.Visible = true;
}
}
}
}