Slash

习惯在追逐的过程中不断去完善自己;当你不再去追逐,你自我完善的脚步也就停滞下来了。

导航

基于角色的管理员菜单处理(XML)

根据角色不同分配不同管理权限,具体代码如下:
XML文件:
<?xml version="1.0" encoding="utf-8" ?> 
<Items>
    
<Item ID="0" ItemName="添加管理员" RoleID="1" ItemUrl="/fradmin/addAdmin.aspx"></Item>
    
<Item ID="1" ItemName="管理员列表" RoleID="1" ItemUrl="/fradmin/adminList.aspx"></Item>
    
<Item ID="3" ItemName="修改密码" RoleID="2" ItemUrl="/fradmin/changepwd.aspx"></Item>
    
<Item ID="4" ItemName="用户列表" RoleID="2" ItemUrl="/fradmin/UserList.aspx"></Item>
    
<Item ID="5" ItemName="销售状况" RoleID="2" ItemUrl="/fradmin/sailstatus.aspx"></Item>
    
<Item ID="6" ItemName="商品信息" RoleID="2" ItemUrl="/fradmin/GoodsList.aspx"></Item>
    
<Item ID="7" ItemName="添加商品" RoleID="2" ItemUrl="/fradmin/addgood.aspx"></Item>
    
<Item ID="8" ItemName="添加商品类别" RoleID="2" ItemUrl="/fradmin/addcategory.aspx"></Item>
    
<Item ID="9" ItemName="退出系统" RoleID="2" ItemUrl=""></Item>
</Items>
操作代码adminMenu.ascx.cs核心代码:
        private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
            string selectid=Request.Params["selectid"];

            
if(selectid!=null)
                dlstMenu.SelectedIndex
=Int32.Parse(selectid);
            BindToMenu(Session[
"RoleID"].ToString());
        }


        
Web 窗体设计器生成的代码
        
//根据管理员角色不同分别绑定不同数据节点用于管理操作
        private void BindToMenu(string roleid)
        
{
            System.Xml.XmlDocument doc
=new System.Xml.XmlDocument();
            doc.Load(Server.MapPath(
"/fradmin/adminMenu.xml"));
            
            XmlNode itemNode
=doc.DocumentElement;

            
//新建DataTable对象,用于绑定至DataList控件
            DataTable dt=new DataTable();

            dt.Columns.Add(
"ItemName");
            dt.Columns.Add(
"ItemUrl");

            
//定义各数据项字符串引用,
            string itemName,itemUrl,adminroleID;
            
string[] rowItem=new string[2];

            
//遍历整个xml文档,同时验证管理员角色编号,将各节点项目数据添加至DataTable中
            foreach(XmlNode xnode in itemNode)
            
{
                adminroleID
=xnode.Attributes["RoleID"].Value;
                
if(roleid=="2")
                
{
                    
if(adminroleID==roleid)
                    
{
                        itemName
=xnode.Attributes["ItemName"].Value;
                        itemUrl
=xnode.Attributes["ItemUrl"].Value;

                        rowItem[
0]=itemName;
                        rowItem[
1]=itemUrl;

                        dt.Rows.Add(rowItem);
                    }

                }

                
else
                
{
                    
//roleID=1,超级管理员,将所有节点数据全部取出添加至DataTable
                    itemName=xnode.Attributes["ItemName"].Value;
                    itemUrl
=xnode.Attributes["ItemUrl"].Value;

                    rowItem[
0]=itemName;
                    rowItem[
1]=itemUrl;
                    dt.Rows.Add(rowItem);
                }

            }


            
//将所取出数据绑定至DataList
            dlstMenu.DataSource=dt;
            dlstMenu.DataBind();
        }

    }

posted on 2006-05-22 09:10  Slash  阅读(507)  评论(0编辑  收藏  举报