一、概述
对于已经毕业了3年的人来说,我真的比较惭愧。发现很多东西都没有做好。在加入了几个QQ群,一帮动力无穷的人给了我压力,也给了我动力。
一下是对于近期工作的一些总结其实也是在网上找的资料,所以别说你看过......
1:用户菜单
找了很多菜单,最后用了破解版本的
ComponentArt
2:菜单权限
分四种方式来控制
A:新系统中用户自定义组
B:公司部门
C:老系统中已存在的用户自定义组
D:个人
3:系统登录方式
局域网中:自动登录
仿照sharePoint 登出功能(域身份验证)
登出,管理员模拟身份(模拟任何用户)
4:Asp 和 Asp.net系统整理
为了使得原有的老系统能够在新的框架中运行。想了很多办法。来获取Seesion 。结果没有找到好的解决方法。最终用Iframe 嵌入了一个asp页面通过一个domain 下共享cookie 来读取Seesion
5: 用户定制菜单功能
其实就是一张用户表用来存自定义数据
二、详细介绍
菜单的介绍,无限制层级菜单与权限结合
表截图
加载用户菜单,最上层菜单是根据是否有子操作菜单,来决定是否显示
根据用户是否有权限

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
}
过段时间补充