最近,开始用了用母版页的功能,主要是想实现网页的整体风格统一。转换之后,原本的目录树TreeView是通过数据库绑定的,现在我用了SiteMap导航,但是程序中需要分权限显示不同的目录树。我查了一些资料,可以通过VS2005的网站管理工具来控制。不过,这个需要结合SQL Server2005来实现,用SQL Server 2000也可以,只是设置也麻烦了一些。我的SQL2005管理工具出了点问题,试了很久也没成功。由于自己的程序中权限不是很多,所以考虑用多个SiteMap来切换。
添加不同的web.sitemap文件,同时修改web.config,在system.web下增加如下几个配置项:
- <siteMap defaultProvider="site1" enabled="true">
- <providers>
- <add name="site1" description="Default SiteMap provider." type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap"/>
- <add name="site2" type="System.Web.XmlSiteMapProvider" siteMapFile="Web2.sitemap"/>
- </providers>
- </siteMap>
之后,在母版页的CS文件中的Page_load中写入判断语句:
- public partial class MasterPage2 : System.Web.UI.MasterPage
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- // 。。。
- if (!Page.IsPostBack)
- {
- if (Session["RoleID"] != null)
- {
- if (Session["RoleID"].ToString() == "1")
- SiteMapDataSource1.SiteMapProvider = "site2";//管理员
- else if (Session["RoleID"].ToString() == "0")
- SiteMapDataSource1.SiteMapProvider = "site1";//普通用户
- }
- }
- }
- }