XML文件控制权限菜单
时间:2010-09-16 来源:wangbin0307
在软件系统中如果牵扯到多个用户,或者说存在多个角色权限的时候就需要在不同的用户登陆以后,显示不同的操作菜单。比如:经理需要审批,管理员备份数据等常见的不同操作。这个时候可以使用不同的菜单页面实现,不过权限的动态更改会受限制。所以可以使用一个菜单页面,上面放置一个树控件,便于显示菜单的层次关系。比如:资产管理存在资产新增,资产调拨等子菜单。树控件正好可以对应这种层次感。
然后将树控件绑定XML数据源,配置TreeNode数据绑定。将相应的绑定对应XML中的属性名。当更改权限的时候可以更改对应的XML文件,不同权限的用户登陆时候可以选择载入不同的XML文件。
简单示例:
ASPX中代码:
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1">
<DataBindings>
<asp:TreeNodeBinding DataMember="siteMapNode" NavigateUrlField="url" TargetField="target"
TextField="title" />
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server"></asp:XmlDataSource>
.CS中代码:
if (!Page.IsPostBack)//当页面首次加载时
{
////////对应的权限选择来载入不同的XML,只供参考,实际使用需要有判断依据。
this.XmlDataSource1.DataFile = "~/TreeView_Admin.xml";
// this.XmlDataSource1.DataFile = "~/TreeView_ChairMan.xml"
}
XML中文件格式,这个对应的就是 <asp:TreeNodeBinding DataMember="siteMapNode" NavigateUrlField="url" TargetField="target"
TextField="title" />
注意两者的对应和XML中的层次关系:
<?xml version="1.0" encoding="utf-8" ?>
<siteMapNode title="固定资产管理系统" url="#" description="" target="" image="~/images/desk.gif">
<siteMapNode title="系统管理" url="#" description="" target="" image="~/images/tree.gif">
<siteMapNode title=" 员工管理" url="~/SystemManage/EmpManage.aspx" description="" target="_parent" image="~/images/tree.gif"/>
</siteMapNode>
<siteMapNode title="基础信息" url="#" description="" target="" image="~/images/tree.gif">
<siteMapNode title=" 机构管理" url="~/BaseManage/OrganManage.aspx" description="" target="mainFrame" image="~/images/tree.gif"/>
<siteMapNode title=" 使用地管理" url="~/BaseManage/BranchManage.aspx" description="" target="mainFrame" image="~/images/tree.gif"/>
<siteMapNode title=" 类别管理" url="~/BaseManage/TypeManage.aspx" description="" target="mainFrame" image="~/images/tree.gif"/>
</siteMapNode>
</siteMapNode>
2个XML格式一样,只是配置的菜单名和URL指向不同。这样就可以方便的对权限菜单进行配置了。