XML文件控制權限菜單

在軟件系統中如果牽扯到多個用戶,或者說存在多個角色權限的時候就需要在不同的用戶登陸以後,顯示不同的操作菜單。比如:經理需要審批,管理員備份數據等常見的不同操作。這個時候可以使用不同的菜單頁面實現,不過權限的動態更改會受限制。所以可以使用一個菜單頁面,上面放置一個樹控件(Menu控件也可以,下文以TreeView控件爲例),便於顯示菜單的層次關係。比如:資產管理存在資產新增,資產調撥等子菜單。樹控件正好可以對應這種層次感。

然後將樹控件綁定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指向不同。這樣就可以方便的對權限菜單進行配置了。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章