动态菜单(权限不同,菜单不同)
来源:互联网 发布:json格式保存到数据库 编辑:程序博客网 时间:2024/05/24 05:29
主界面:
TreeFunction myTreeF = new TreeFunction();
myStr2 = "SELECT StationID,StationMenu FROM RolePurviewInfo WHERE StationID = '" + GlobeVariable.StationID + "' ORDER BY StationID";
myDs1 = myConnectManager.Data_Fill(myStr2, "CD");
myTreeF.MenuVisible(menuStrip1.Items, myDs1);
生成页面:
1)在Page_Load事件中加入:
myfMain = new fMain();
myTreeFunction = new TreeFunction();
myTreeFunction.TreeRoot(ref treeView1, myfMain.myMenuStrip);
2)在保存事件中加入:
myStr2 = "";
fhz = myConnectManager.ExecuteSQL(myStr2);
if (myTreeFunction.TreeSaveRight(StationBM, StationMC, treeView1.Nodes, myConnectManager) == 1)
{
MessageBox.Show("数据保存成功", "提示信息");
}
类中的方法:
private int j, z;
#region TreeView添加父节点,方法名:TreeRoot(ref TreeView myT, MenuStrip myMenu)
public void TreeRoot(ref TreeView myT, MenuStrip myMenu)
{
foreach (ToolStripMenuItem myMI in myMenu.Items)
{
TreeNode myTreeN = new TreeNode();
myTreeN.Text = myMI.Text;
TreeNod(myMI, myTreeN, false);
myT.Nodes.Add(myTreeN);
}
myT.ShowRootLines = true;
myT.SelectedNode = myT.Nodes[0];
myT.Focus();
}
#endregion
#region TreeView添加子节点,方法名:TreeNod(ToolStripMenuItem m, TreeNode asTN, bool asbl)
public TreeNode TreeNod(ToolStripMenuItem m, TreeNode asTN, bool asbl)
{
TreeNode TreeN1 = new TreeNode(); //定义一个新的节点
if (asbl)
{
TreeN1.Text = m.Text; //新节点的名称为菜单项的名称
asTN.Nodes.Add(TreeN1); //添加名称为菜单项的新节点
}
else
{
TreeN1 = asTN; //新节点的名称为默认节点名称
}
for (int i = 0; i < m.DropDownItems.Count; i++)
{
if (m.DropDownItems[i] is ToolStripMenuItem)
{
TreeNod((ToolStripMenuItem)m.DropDownItems[i], TreeN1, true);
}
else
{
if (m.DropDownItems[i] is ToolStripSeparator)
{
asTN.Nodes.Add("-" + j.ToString() + i.ToString());
}
}
}
if (m.DropDownItems.Count > 0)
{
j += 1;
}
return TreeN1; //返回新节点
}
#endregion
#region 在TreeView中显示不同权限用户的菜单项,方法名:TreeSetRightByUserGroup(string UserGroupbm, TreeNodeCollection myTree, ConnectManager myConM)
public void TreeSetRightByUserGroup(string UserGroupbm, TreeNodeCollection myTree, ConnectManager myConM)
{
DataSet myDs;
foreach (TreeNode tn in myTree)
{
string lsSql = "select * from RolePurviewInfo where StationID='" + UserGroupbm + "' and StationMenu='" + tn.Text + "'";
myDs = myConM.Data_Fill(lsSql, "RolePurviewInfo");
if (myDs == null)
{
return;
}
if (myDs.Tables["RolePurviewInfo"].Rows.Count == 1)
{
tn.Checked = true;
}
else
{
tn.Checked = false;
}
//myDs.Clear();
myDs.Tables["RolePurviewInfo"].Rows.Clear();
if (tn.Nodes.Count != 0)
{
TreeSetRightByUserGroup(UserGroupbm, tn.Nodes, myConM);
}
}
}
#endregion
#region 保存不同权限用户的菜单项,方法名:TreeSaveRight(string UserGroupbm, string UserGroupmc, TreeNodeCollection myTree, ConnectManager myConM)
public int TreeSaveRight(string UserGroupbm, string UserGroupmc, TreeNodeCollection myTree, ConnectManager myConM)
{
foreach (TreeNode tn in myTree)
{
if (tn.Checked == true)
{
string lsSql = "INSERT INTO RolePurviewInfo(StationID,StationName,StationMenu) VALUES('" + UserGroupbm + "','" + UserGroupmc + "','" + tn.Text + "')";
try
{
myConM.ExecuteSQL(lsSql);
}
catch (Exception e)
{
MessageBox.Show(e.ToString(), "error");
return 0;
}
}
if (tn.Nodes.Count != 0)
{
TreeSaveRight(UserGroupbm, UserGroupmc, tn.Nodes, myConM);
}
}
return 1;
}
#endregion
#region TreeView选择父节点,方法名:TreeSelectParent(TreeNode Tn, bool lsCheck)
public void TreeSelectParent(TreeNode Tn, bool lsCheck)
{
if (Tn.Parent == null)
{
return;
}
switch (lsCheck)
{
case true:
Tn.Parent.Checked = true;
break;
case false:
Tn.Parent.Checked = false;
break;
default:
break;
}
}
#endregion
#region TreeView选择子节点,方法名:TreeSelectRight(TreeNodeCollection myTree, bool myIndex)
public void TreeSelectRight(TreeNodeCollection myTree, bool myIndex)
{
foreach (TreeNode tn in myTree)
{
tn.Checked = myIndex;
}
}
#endregion
#region 确定不同权限用户的菜单显示,方法名:MenuVisible(ToolStripItemCollection Mymenu, DataSet myDS)
public void MenuVisible(ToolStripItemCollection Mymenu, DataSet myDS)
{
for (int i = 0; i < Mymenu.Count; i++)
{
if (Mymenu[i].GetType().ToString() == "System.Windows.Forms.ToolStripMenuItem")
{
ToolStripMenuItem t = (ToolStripMenuItem)Mymenu[i];
myDS.Tables["CD"].DefaultView.RowFilter = "StationMenu='" + t.Text + "'";
if (myDS.Tables["CD"].DefaultView.Count == 1)
{
t.Visible = true;
}
else
{
t.Visible = false;
}
if (t.DropDownItems.Count != 0)
{
MenuVisible(t.DropDownItems, myDS);
z += 1;
}
}
else
{
ToolStripSeparator t = (ToolStripSeparator)Mymenu[i];
string Filter = "StationMenu='" + "-" + z.ToString() + i.ToString() + "'";
myDS.Tables["CD"].DefaultView.RowFilter = Filter;
if (myDS.Tables["CD"].DefaultView.Count == 1)
{
t.Visible = true;
}
else
{
t.Visible = false;
}
}
}
}
#endregion
- 动态菜单(权限不同,菜单不同)
- 如何实现不同权限的用户登录后看到不同的菜单(菜单分两级)
- winform不同角色动态创建不同菜单_gflin_新浪博客
- 右键菜单-支持不同对象不同菜单
- OA权限模块根据用户权限显示不同的菜单
- OA权限模块根据用户权限显示不同的菜单
- OA权限模块根据用户权限显示不同的菜单
- 根据不同的情况动态改变menu菜单项
- android不同Fragment有不同的菜单
- 响应不同程序的菜单
- j2ee 权限-动态菜单设计
- javascript 右键菜单 支持多级菜单 支持不同节点展示不同菜单 兼容firefox和IE
- javascript 右键菜单 支持多级菜单 支持不同节点展示不同菜单 兼容firefox和IE
- 一个简单的实现不同权限的用户登录后看到不同的菜单设计的数据库表清单
- 一个简单的实现不同权限的用户登录后看到不同的菜单设计的数据库表清单
- 使用TabHost添加不同tab界面不同的菜单(包含ActionBar)
- (15)根据不同盒子和下拉菜单选择颜色,给文本赋予不同的颜色
- 关于dorado框架datatable处的右键菜单无法根据具体数据实现动态分别显示不同菜单的解决方法
- 二维混合
- Javascript的document,window对象(DOM)
- 在PowerDesigner中设计物理模型
- 绝对精辟,鲜活代码和实例讲授门面设计模式
- 绞车提升能力及钢丝绳验算软件 下载地址
- 动态菜单(权限不同,菜单不同)
- 转,flex处理java返回的容器类型
- PHP中字符串的显示以及格式化(第三章 字符串与正则表达式)
- Symbian发送短信完整代码
- Solaris中的PKCS11接口参考
- JDBC
- CFileDialog注意事项
- Struts2初步
- CRM TABLE