功能表:功能组ID,功能组名称,模块ID,模块名称,功能项ID,功能项名称
1000 系统管理 1100 用户管理 1101 添加用户
1000 系统管理 1100 用户管理 1102 修改用户
1000 系统管理 1100 用户管理 1103 删除用户
1000 系统管理 1200 角色管理 1201 添加角色
1000 系统管理 1200 角色管理 1202 修改角色
1000 系统管理 1200 角色管理 1203 删除角色
2000 基础数据 2100 客户管理 2101 添加客户
2000 基础数据 2100 客户管理 2102 删除客户
2000 基础数据 2100 客户管理 2103 修改客户 //功能模块表角色权限表: 角色ID,功功能组ID,模块ID,功能项ID
------------------------------------------------------------------------------------
需求:
1.treeView 填充 三级 功能组 模块 功能项。
2.treeView带复选框 支持多选,选择上级节点时 下级几点自动选中。
3.将选中的节点功能项添加到角色权限表中!感谢大家! 系统大家提供好的方法!
1000 系统管理 1100 用户管理 1101 添加用户
1000 系统管理 1100 用户管理 1102 修改用户
1000 系统管理 1100 用户管理 1103 删除用户
1000 系统管理 1200 角色管理 1201 添加角色
1000 系统管理 1200 角色管理 1202 修改角色
1000 系统管理 1200 角色管理 1203 删除角色
2000 基础数据 2100 客户管理 2101 添加客户
2000 基础数据 2100 客户管理 2102 删除客户
2000 基础数据 2100 客户管理 2103 修改客户 //功能模块表角色权限表: 角色ID,功功能组ID,模块ID,功能项ID
------------------------------------------------------------------------------------
需求:
1.treeView 填充 三级 功能组 模块 功能项。
2.treeView带复选框 支持多选,选择上级节点时 下级几点自动选中。
3.将选中的节点功能项添加到角色权限表中!感谢大家! 系统大家提供好的方法!
解决方案 »
- 【200分】求解TFS2012的模版说明
- 有人木有?求解决,小题哦!
- C#中控件怎么按窗口比例改变大小???
- 如何把值存入表中
- 数据控件绑定的问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- if(!Page.IsPostBack)--如果没有登陆,弹出“请登陆”,单击确定后返回登陆页面
- c# 里 MapHostAbsolutePath() 是个什么方法
- 现有几个C#类,求高人做成DLL或COM组件给VC++或DELPHI调用(200分)急!!!!!!在线等
- 散分了!留言就有分!
- 急求指点.
- 请教一个winform的datagridview数据刷新的问题
- 自定义验证的一个小问题
{
string strSql = "select distinct 功能组名称 from 功能表"; DataSet ds = clsSql.GetDs(strSql); if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
string 功能组名称 = row["功能组名称"].ToString(); TreeNode aNode = new TreeNode(功能组名称); tree.Nodes.Add(aNode);
// ------ 查找此功能组名称里的模块名称 ------
strSql = "Select 模块名称 From 功能表 Where 功能组名称='" + 功能组名称 + "' ";
DataSet ds2 = clsSql.GetDs(strSql); if (ds2.Tables[0].Rows.Count > 0)
{
foreach (DataRow row2 in ds2.Tables[0].Rows)
{
string 模块名称 = row2["模块名称"].ToString(); TreeNode aaNode = new TreeNode(模块名称); aaNode.ImageIndex = 0;
aNode.Nodes.Add(aaNode);
// ------ 查找此模块名称里的功能项名称 ------
strSql = "Select 功能项名称 From 功能表 " +
"Where 功能组名称='" + 功能组名称 + "' and 模块名称='" + 模块名称 + "' "; DataSet ds3 = clsSql.GetDs(strSql); if (ds3.Tables[0].Rows.Count > 0)
{
foreach (DataRow row3 in ds3.Tables[0].Rows)
{
string 功能项名称 = row3["功能项名称"].ToString(); TreeNode aaaNode = new TreeNode(功能项名称); aaaNode.ImageIndex = 0;
aaNode.Nodes.Add(aaaNode);
}
} ds3.Dispose();
//----------------------------
}
} ds2.Dispose();
//----------------------------
}
} ds.Dispose(); tree.ExpandAll(); //展开
}
2.treeView带复选框
在treeView的属性里把CheckBoxes设置为true
AfterCheck事件里面写下面代码 private void tree_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if (e.Node.Checked)
{
foreach (TreeNode tn in e.Node.Nodes)
{
tn.Checked = true;
} }
else
{
foreach (TreeNode tn in e.Node.Nodes)
{
tn.Checked = false;
}
}
}
3.将选中的节点功能项添加到角色权限表中 foreach (TreeNode tn in treeNode.Nodes)
{
if(treeNode.Checked)
{
//在这里面处理添加到角色权限表中
}
}
如有想详细了解此软件请在百度搜索<艾圣奇软件工厂>既可看到!http://www.scgisit.com/
就将你的数据加载到treeview上面去了,前提是SetTree()已经在你那边的项目上写好了
tree.SelectedNode.Parent.Tag.ToString();
恩,不过要在我开始写的那个settree()里面改改
我举个列子
TreeNode aNode = new TreeNode();
aNode.text=Name;
aNode.Tag=ID;开始那个填充的时候就要改成这样了,要不然后面取不到的
{
this.myRegion = ExecuteSql("SELECT ID, CODE, NAME, PARENT_CODE, USER_COUNT FROM T_AREA"); trvXML.Nodes.Clear(); //trvXML为你的Treeview控件名
TreeNode trvboot = new TreeNode("CHINA");
trvXML.Nodes.Add(trvboot); BuildTree("SuperID=0", this.myRegion.Select("SuperID=0")[0], trvboot); //把SuperID改成你的父级ID,这里的0为最顶点ID值
trvXML.Nodes[0].Expand();
} //使用递归创建 TreeView
private void BuildTree(string expression, DataRow drRow, TreeNode lstNode)
{
int superCount = this.myRegion.Select(expression).Length;
if (superCount > 0)
{
foreach (DataRow dr in this.myRegion.Select(expression))
{
string childExpress = string.Format("SuperID={0}", dr["ID"].ToString()); //把SuperID改成你的父级ID
if (this.myRegion.Select(childExpress).Length > 0)
{
TreeNode sublst = new TreeNode(dr["NAME"].ToString());
sublst.Tag = dr;
lstNode.Nodes.Add(sublst);
BuildTree(childExpress, dr, sublst);
}
else
{
BuildTree(childExpress, dr, lstNode);
}
}
}
else
{
TreeNode node = new TreeNode(drRow["NAME"].ToString());
node.Tag = drRow;
lstNode.Nodes.Add(node);
}
}
支持无限级分类的数据显示,更多方法,参考:
http://topic.csdn.net/u/20090610/11/dc7942ba-901a-4bad-bb56-f77da9ecbd79.html