别说你都看过,我的开发过程记录

一、概述 
     对于已经毕业了3年的人来说,我真的比较惭愧。发现很多东西都没有做好。在加入了几个QQ群,一帮动力无穷的人给了我压力,也给了我动力。
      一下是对于近期工作的一些总结其实也是在网上找的资料,所以别说你看过......



1:用户菜单
     找了很多菜单,最后用了破解版本的 ComponentArt
2:菜单权限
     分四种方式来控制
     A:新系统中用户自定义组
     B:公司部门
     C:老系统中已存在的用户自定义组
     D:个人
3:系统登录方式
     局域网中:自动登录
     仿照sharePoint 登出功能(域身份验证)
     登出,管理员模拟身份(模拟任何用户)
4:Asp 和 Asp.net系统整理
     为了使得原有的老系统能够在新的框架中运行。想了很多办法。来获取Seesion 。结果没有找到好的解决方法。最终用Iframe 嵌入了一个asp页面通过一个domain 下共享cookie 来读取Seesion 
5: 用户定制菜单功能
    其实就是一张用户表用来存自定义数据

二、详细介绍
    菜单的介绍,无限制层级菜单与权限结合

 

别说你都看过,我的开发过程记录_第1张图片

表截图别说你都看过,我的开发过程记录_第2张图片

加载用户菜单,最上层菜单是根据是否有子操作菜单,来决定是否显示
根据用户是否有权限

Code
 1       private void Page_Load(object sender, System.EventArgs e)
 2        {
 3            if (!IsPostBack) buildMenu();
 4        }

 5
 6        private void buildMenu()
 7        {
 8            DataSet set = new DataSet();
 9            UserPermission permission = new UserPermission();
10            long lCardID = Convert.ToInt64(HttpContext.Current.Session["CardID"]);
11            int iDeartmentID = Convert.ToInt32(HttpContext.Current.Session["Department"]);
12
13            DataSet filterSysItem = new DataSet();
14           
15            //有權限的節點
16            filterSysItem = permission.GetFilterSysItem(iDeartmentID, lCardID);
17
18            //遞歸所有的節點生成菜單
19            filterSysItem.Relations.Add("NodeRelation", filterSysItem.Tables[0].Columns["SysMenu_ID"], filterSysItem.Tables[0].Columns["Parent_SysMenu_ID"], false);
20          
21            foreach (DataRow row in filterSysItem.Tables[0].Rows)
22            {
23                if (int.Parse(row["Parent_SysMenu_ID"].ToString()) == 0)
24                {
25                    ComponentArt.Web.UI.MenuItem newItem = CreateItem(row);
26                    Menu1.Items.Add(newItem);
27                    //找出根節點對應的子節點,並加入菜單中
28                    PopulateSubMenu(row, newItem);
29
30                   
31                }

32            }

33        }

34
35        private void PopulateSubMenu(DataRow dbRow, ComponentArt.Web.UI.MenuItem item)
36        {
37
38            foreach (DataRow childRow in dbRow.GetChildRows("NodeRelation"))
39            {
40                
41                        ComponentArt.Web.UI.MenuItem childItem = CreateSubItem(childRow);
42                        item.Items.Add(childItem);
43                        //遞歸調用生成菜單
44                        PopulateSubMenu(childRow, childItem);
45              
46
47            }

48        }

49
50        private ComponentArt.Web.UI.MenuItem CreateItem(DataRow dbRow)
51        {
52
53            ComponentArt.Web.UI.MenuItem item = new ComponentArt.Web.UI.MenuItem();
54            string sClientSideTarget = string.Empty;
55            int iBase = Convert.ToInt32(dbRow["SysMenu_ID"].ToString());
56            string sFrameTargetUrl = dbRow["SysMenu_Defalut_Url"].ToString();
57
58            item.Text = dbRow["SysMenu_Name"].ToString();
59            sClientSideTarget = "window.top.frames['BoardTitle'].location.href='left.aspx?categoryName=" + iBase + "';window.open('" + sFrameTargetUrl + "','mainFrame');";
60            item.ClientSideCommand = sClientSideTarget;
61            item.LookId = dbRow["SysMenu_LookId"].ToString();
62            return item;
63
64        }

65
66        private ComponentArt.Web.UI.MenuItem CreateSubItem(DataRow dbRow)
67        {
68            ComponentArt.Web.UI.MenuItem item = new ComponentArt.Web.UI.MenuItem();
69            string sClientSideTarget = string.Empty;
70            int iBase = Convert.ToInt32(dbRow["SysMenu_ID"].ToString());
71            string sFrameTargetUrl = dbRow["SysMenu_Defalut_Url"].ToString();
72
73            //sub item expand
74            if (!dbRow.IsNull("SysMenu_LookId"))
75            {
76                item.LookId = dbRow["SysMenu_LookId"].ToString();
77            }

78            if (dbRow["SysMenu_LookId"].ToString() != "ExpandableItemLook")
79            {
80                sClientSideTarget = "window.top.frames['BoardTitle'].location.href='left.aspx?categoryName=" + iBase + "';window.open('" + sFrameTargetUrl + "','mainFrame');";
81                item.ClientSideCommand = sClientSideTarget;
82            }

83            item.Text = dbRow["SysMenu_Name"].ToString();
84           
85            return item;
86        }


过段时间补充


    

转载于:https://www.cnblogs.com/szbaby1221/archive/2008/06/19/1226162.html

你可能感兴趣的:(别说你都看过,我的开发过程记录)