动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, pa
2014-03-18 08:56
671 查看
public void LoadMenuRightsItem(MenuStrip msCurrentMenu, ListBox listBox)//, List<Rights> rightCollection)
{
string conStr = ConfigurationManager.ConnectionStrings["SQLSERVER"].ConnectionString;
ToolStripMenuItem MenuItem = null;
using (SqlConnection con = new SqlConnection(conStr))
{
string sql = "select sf.NodeID, sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join R_UserInfo_SysFun rus on ui.ID=rus.UserInfoID left outer join SysFun sf on rus.SysFunID=sf.NodeID where
ui.ID=1 union select sf.NodeID ,sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join User_Roles ur on ui.ID=ur.UserID left outer join Roles r on ur.RoleID=r.ID left outer join Roles_SysFun rs on r.ID=rs.RolesID
Right outer join SysFun sf on rs.SysFunID=sf.NodeID where ui.ID=1";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if (reader["ParentNodeID"].ToString() == "0")
{
ToolStripMenuItem mItem;
mItem = new ToolStripMenuItem(reader["DisplayName"].ToString());
msCurrentMenu.Items.Add(mItem);
SetSubMenu(mItem, reader["NodeID"].ToString());
//SetSubMenu((ToolStripMenuItem)msCurrentMenu.Items[reader["DisplayName"].ToString()], reader["NodeID"].ToString());
}
}
}
}
}
/// <summary>
/// 创建子菜单
/// </summary>
/// <param name="mItem">要创建的子菜单的父项</param>
/// <param name="mName>要创建的子菜单的父项名称</param>
public void SetSubMenu(ToolStripMenuItem mItem, string mName)
{
try
{
string conStr = ConfigurationManager.ConnectionStrings["SQLSERVER"].ConnectionString;
ToolStripMenuItem MenuItem = null;
using (SqlConnection con = new SqlConnection(conStr))
{
string sql = "select sf.NodeID, sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join R_UserInfo_SysFun rus on ui.ID=rus.UserInfoID left outer join SysFun sf on rus.SysFunID=sf.NodeID
where ui.ID=1 union select sf.NodeID ,sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join User_Roles ur on ui.ID=ur.UserID left outer join Roles r on ur.RoleID=r.ID left outer join Roles_SysFun rs on
r.ID=rs.RolesID Right outer join SysFun sf on rs.SysFunID=sf.NodeID where ui.ID=1";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if (reader["ParentNodeID"].ToString() == mName)
{
ToolStripMenuItem mSubItem;
EventHandler eh = GetEvent(reader["EventName"].ToString());
mSubItem = new ToolStripMenuItem(reader["DisplayName"].ToString(), null, eh); //
mItem.DropDownItems.Add(mSubItem);
// SetSubMenu((ToolStripMenuItem)mItem.DropDownItems[reader["DisplayName"].ToString()],reader["DisplayName"].ToString());
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
public EventHandler GetEvent(string eventName)
{
EventHandler eh = null;
switch (eventName.ToString())
{
case "DeptInfoClicked":
eh = new EventHandler(DeptInfoClicked);
break;
default:
eh = null;
break;
}
return eh;
}
public void DeptInfoClicked(object sender, EventArgs e)
{
MessageBox.Show("DeptInfoClicked");
}
{
string conStr = ConfigurationManager.ConnectionStrings["SQLSERVER"].ConnectionString;
ToolStripMenuItem MenuItem = null;
using (SqlConnection con = new SqlConnection(conStr))
{
string sql = "select sf.NodeID, sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join R_UserInfo_SysFun rus on ui.ID=rus.UserInfoID left outer join SysFun sf on rus.SysFunID=sf.NodeID where
ui.ID=1 union select sf.NodeID ,sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join User_Roles ur on ui.ID=ur.UserID left outer join Roles r on ur.RoleID=r.ID left outer join Roles_SysFun rs on r.ID=rs.RolesID
Right outer join SysFun sf on rs.SysFunID=sf.NodeID where ui.ID=1";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if (reader["ParentNodeID"].ToString() == "0")
{
ToolStripMenuItem mItem;
mItem = new ToolStripMenuItem(reader["DisplayName"].ToString());
msCurrentMenu.Items.Add(mItem);
SetSubMenu(mItem, reader["NodeID"].ToString());
//SetSubMenu((ToolStripMenuItem)msCurrentMenu.Items[reader["DisplayName"].ToString()], reader["NodeID"].ToString());
}
}
}
}
}
/// <summary>
/// 创建子菜单
/// </summary>
/// <param name="mItem">要创建的子菜单的父项</param>
/// <param name="mName>要创建的子菜单的父项名称</param>
public void SetSubMenu(ToolStripMenuItem mItem, string mName)
{
try
{
string conStr = ConfigurationManager.ConnectionStrings["SQLSERVER"].ConnectionString;
ToolStripMenuItem MenuItem = null;
using (SqlConnection con = new SqlConnection(conStr))
{
string sql = "select sf.NodeID, sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join R_UserInfo_SysFun rus on ui.ID=rus.UserInfoID left outer join SysFun sf on rus.SysFunID=sf.NodeID
where ui.ID=1 union select sf.NodeID ,sf.DisplayName,sf.FullFrmName,sf.NameSpaceName,sf.ParentNodeID,sf.EventName from UserInfo ui left outer join User_Roles ur on ui.ID=ur.UserID left outer join Roles r on ur.RoleID=r.ID left outer join Roles_SysFun rs on
r.ID=rs.RolesID Right outer join SysFun sf on rs.SysFunID=sf.NodeID where ui.ID=1";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if (reader["ParentNodeID"].ToString() == mName)
{
ToolStripMenuItem mSubItem;
EventHandler eh = GetEvent(reader["EventName"].ToString());
mSubItem = new ToolStripMenuItem(reader["DisplayName"].ToString(), null, eh); //
mItem.DropDownItems.Add(mSubItem);
// SetSubMenu((ToolStripMenuItem)mItem.DropDownItems[reader["DisplayName"].ToString()],reader["DisplayName"].ToString());
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
public EventHandler GetEvent(string eventName)
{
EventHandler eh = null;
switch (eventName.ToString())
{
case "DeptInfoClicked":
eh = new EventHandler(DeptInfoClicked);
break;
default:
eh = null;
break;
}
return eh;
}
public void DeptInfoClicked(object sender, EventArgs e)
{
MessageBox.Show("DeptInfoClicked");
}
相关文章推荐
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
- [转载内容]动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值【转】
- extjs4 动态加载树菜单和相应的按钮是否显示 ,到对权限的控制粒度细化到按钮
- C# 中反射获取某类的子类和根据类型名动态创建对象(转载)
- asp.net 2.0下根据权限动态控制菜单、动态配置导航信息 .
- 使用反射实现根据名称动态创建窗体的几种方法。
- 题目:编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type),方法包括显示手机信息,并编写测试类进行对象的创建 public class Mobile { String br
- 使用反射实现根据名称动态创建窗体的几种方法。
- C # 根据字符串动态的创建对象 类 反射
- asp.net 2.0下根据权限动态控制菜单、动态配置导航信息
- C++实现 反射 机制( 即根据 类名 创建 类实例)Create C++ Object Dynamically
- 探究.net对象的创建,质疑《再谈Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较》
- Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较(终结版)
- 再谈Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较(更新版)
- C# 中反射获取某类的子类和根据类型名动态创建对象
- C# 中反射获取某类的子类和根据类型名动态创建对象(转载)
- 一。对象管理第一次初始化(ObInitSystem) + 类型对象的创建(ObCreateObjectType)
- 根据用户权限,动态显示用户菜单
- C/S模式根据权限基于反射机制实现动态生成菜单