有两个表
一个是地区表,该表字段为(地区编号,地区名称,地区管理员工号,地区管理员密码,地区管理员姓名),其中,地区编号为9999的记录,对应的管理员为超级管理员
一个是营业厅表,该表的字段为(营业厅编号,营业厅所属地区编号,营业厅名称,营业厅管理员工号,营业厅管理员姓名,营业厅管理员密码,......)
登录页面里有个用户类型选择,用于选取那种管理员登录。主页左边是一个操作目录树,不同权限的用户,看到的目录树的项目不同。这个目录树是用ASP.net下的一个TreeView控件+SiteMapDataSource+SiteMap站点配置文件实现的。当以超级管理员的身份登录时,所有的操作都能看到;当以地区管理员的身份登录时,只能对本地区进行相关操作;当以营业厅管理员的身份登录时,只能对本营业厅进行相关操作。我为不同权限的用户写了相应的sitemap文件,考虑不同权限的用户用不同的sitemap文件。主页面里用了frameset,目录树是其中的一个frameset项,链接到Menu页面,该页面里有TreeView控件。我在Menu页面的cs代码里写替换SiteMapDataSource的SiteMapProvider时,程序运行时老提示无法找到SiteMapProvider的Office,Office.sitemap和Web.sitemap,前者是营业厅管理员使用的站点地图文件,后者为超级管理员和地区管理员使用的。
相关代码如下
Web.config文件中的配置信息
<siteMap>
<providers>
<add name="office"
type="System.Web.XmlSiteMapProvider"
siteMapFile="Office.sitemap"/>
</providers>
</siteMap>
Menu.aspx.cs
public partial class Menu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["DistrictId"] == null)
return;
else
{
SiteMapDataSource1.SiteMapProvider = "office";
}
}
}
if (Session["DistrictId"] == null)
return;
你把这一句改了试试!
if(Session["DistrictId"]==null)
{
SiteMapDataSource1.SiteMapProvider = "";
}
可能是SiteMapProvider不能为null