#region 绑定角色
    /// <summary>
    /// 绑定权限信息
    /// </summary>
    protected void BindgvRoles()
    {
        string sql = "select * from GM_FileKind";
        DataTable dt = OADBHelper.GetDataTable(sql);
        this.gvRoles.DataSource = dt;
        this.DataBind();
    }
    #endregion

#region TreeView 表员工表的显示至TreeView控件
    /// <summary>
    /// Tree绑定
    /// </summary>
    public void BindTree()
    {
        this.tvUsers.Nodes.Clear();
        string sql = "select * from Accounts_UserDepartment";
        DataView dv = OADBHelper.GetDataTable(sql).DefaultView;
        //dv.RowFilter = "Kind=0";
        foreach (DataRowView drv in dv)
        {
            TreeNode tn = new TreeNode();
            tn.Text = drv["Dept"].ToString();
            tn.Value = drv["AutoID"].ToString();
            //tn.NavigateUrl = drv["KURL"].ToString();
            tn.SelectAction = TreeNodeSelectAction.Expand;
            tn.Expanded = false;
            this.tvUsers.Nodes.Add(tn);
            addChildNodes(tn);
        }
    }

/// <summary>
    /// 绑定子节点
    /// </summary>
    /// <param name="tn"></param>
    public void addChildNodes(TreeNode tn)
    {
        string sql = "select UserID,RealName from Accounts_Users where Dept='" + tn.Text + "'";
        DataView dv = OADBHelper.GetDataTable(sql).DefaultView;
        foreach (DataRowView drv in dv)
        {
            TreeNode childtn = new TreeNode();
            childtn.Text = drv["RealName"].ToString();
            childtn.Value = drv["UserID"].ToString();
            //childtn.NavigateUrl = drv["KURL"].ToString();
            childtn.Expanded = false;
            tn.ChildNodes.Add(childtn);
            addChildNodes(childtn);
        }
    }

#endregion

#region 从数据库中读取数据,然后勾选根节点的相应的CheckBox
    /// <summary>
    /// 从数据库中读取数据,然后勾选根节点的相应的CheckBox
    /// </summary>
    /// <param name="RoleId"></param>
    protected void BindTreeRoot(int RoleId, TreeNodeCollection treenode)
    {
        string sql = "";
        foreach (TreeNode nodes in treenode)
        {
            if (nodes.ChildNodes.Count > 0)
            {
                //查找所有权限的人的部门Id
                sql = "select Distinct[DepId] from GM_Roles where FKId=" + RoleId;

DataView dv = OADBHelper.GetDataTable(sql).DefaultView;

foreach (DataRowView drv in dv)
                {

foreach (TreeNode node in treenode)
                    {

if (drv["DepId"].ToString() == node.Value.ToString())
                        {
                            node.Checked = true;
                        }

BindTreeRoot(RoleId, node.ChildNodes);
                    }
                }
            }
            else
            {
                //根据角色ID得到相应的的员工ID
                sql = "select UserID from GM_Roles where FKId='" + RoleId + "'";

DataView dv = OADBHelper.GetDataTable(sql).DefaultView;

foreach (DataRowView drv in dv)
                {

foreach (TreeNode node in treenode)
                    {

if (drv["UserID"].ToString() == node.Value.ToString())
                        {
                            node.Checked = true;
                        }

BindTreeRoot(RoleId, node.ChildNodes);
                    }
                }
            }

}
    }
    #endregion

#region 设置权限
    /// <summary>
    /// 设置权限
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void lkbtnModify_Command(object sender, CommandEventArgs e)
    {
        int Id = Convert.ToInt32(e.CommandArgument.ToString());

ViewState["RoleId"] = Id;

BindTree();

string sql = "select FKName from GM_FileKind where FKId=" + Id;

lblRoles.Text = OADBHelper.GetString(sql);

BindTreeRoot(Id, this.tvUsers.Nodes);
    }
    #endregion

#region  权限设置操作
    /// <summary>
    /// 权限设置操作
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnModify_Click(object sender, EventArgs e)
    {
        if (this.lblRoles.Text == "没有选择角色")
        {
            Response.Write("<script>alert('请选择一个角色名称!');</script>");
        }
        else
        {
            int RoleId = Convert.ToInt32(ViewState["RoleId"].ToString());

string sql = "select UserId from UserId where FKId=" + RoleId;

DeleteRoles(Convert.ToInt32(ViewState["RoleId"].ToString()));

this.GetCheckBoxChecked(this.tvUsers.Nodes);

Response.Write("<script>alert('角色设置成功!');</script>");

}
    }
    #endregion

#region  添加选定的人到角色表(checkbox选中的,插入数据库)

/// <summary>
    /// 选择要添加的角色
    /// </summary>
    /// <param name="treeNode"></param>
    private void GetCheckBoxChecked(TreeNodeCollection treeNode)
    {
        foreach (TreeNode node in treeNode)
        {
            if (node.Checked)
            {

if (node.ChildNodes.Count == 0)
                {
                    //执行保存   
                    int UserId = Convert.ToInt32(node.Value.ToString());

InertRoleMember(Convert.ToInt32(ViewState["RoleId"].ToString()), UserId, Convert.ToInt32(ViewState["DepatId"].ToString()));

this.GetCheckBoxChecked(node.ChildNodes);
                }
                else
                {

ViewState["DepatId"] = node.Value.ToString();

GetCheckBoxChecked(node.ChildNodes);

}

}
            else
            {
                if (node.ChildNodes.Count > 0)
                {
                    this.GetCheckBoxChecked(node.ChildNodes);
                }
            }
        }
    }
    #endregion

#region 通过部门ID得到所有的人员Id
    /// <summary>
    /// 通过部门ID得到所有的人员Id
    /// </summary>
    /// <param name="DeptId"></param>
    /// <returns></returns>
    protected int GetUserIdByDeptId(int DeptId)
    {
        string strSql = "select Dept from Accounts_UserDepartment where AutoID=" + DeptId;

string DeptName = OADBHelper.GetString(strSql);  //得到部门名称

strSql = "select UserID from Accounts_Users where Dept='" + DeptName + "'";

int UserId = Convert.ToInt32(OADBHelper.GetString(strSql));

return UserId;
    }
    #endregion

#region 根据选中的节点设置相应的权限人到数据库
    /// <summary>
    /// 根据选中的节点设置相应的权限人
    /// </summary>
    /// <param name="classId"></param>
    /// <param name="RoleId"></param>
    protected void InertRoleMember(int FKId, int UserId,int DeptId)
    {
        string sql = @"insert into GM_Roles(FKId,UserId,DepId)values('" + FKId + "','" + UserId + "','" + DeptId + "')";
        OADBHelper.GetInt(sql);
    }
    #endregion

#region 根据角色Id删除相应的权限
    /// <summary>
    /// 根据角色Id删除相应的权限
    /// </summary>
    /// <param name="RoleId"></param>
    protected void DeleteRoles(int RoleId)
    {
        string sql = @"delete from GM_Roles where FKId=" + RoleId;
        OADBHelper.GetInt(sql);
    }
    #endregion

#region C#复选框的操作
    /// <summary>
    /// 复选框改变时的操作
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void tvUsers_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
    {
        SetChildChecked(e.Node);
    }

/// <summary>

/// 根据父节点情况来选择子节点

/// </summary>

/// <param name="parentNode"></param>

private void SetChildChecked(TreeNode parentNode)
    {
        foreach (TreeNode node in parentNode.ChildNodes)
        {
            node.Checked = parentNode.Checked;
            if (node.ChildNodes.Count > 0)
            {
                SetChildChecked(node);
            }
        }
    }
    #endregion

我刚做的一个TreeView的CheckBox进行选中插入数据库,从数据库中读取数据后让CheckBox勾选的代码!...相关推荐

  1. 做了一个噩梦,梦见你离开,我从哭泣中醒来

    做了一个噩梦,梦见你离开,我从哭泣中醒来. 还好,只是梦. 可是突然想起, 现实中你也早已离去.

  2. 程序基于MATLAB yalmip 开发,做了一个简单的微网优化调度模型,模型中含有蓄电池储能、风电、光伏等发电单元,程序运行结果良好

    微网 优化调度 机组组合 YALMIP cplex 编程语言:MATLAB平台 主题:基于YALMIP 的微网优化调度模型 内容简介:程序基于MATLAB yalmip 开发,做了一个简单的微网优化调 ...

  3. hubbledotnet 远程连接提示:无法从传输连接中读取数据:远程主机强迫关闭一个现有的连接...

    我用本地hubbledotnet(安装32位)去连接服务器hubbledotnet(64位) 提示:无法从传输连接中读取数据:远程主机强迫关闭一个现有的连接 ...

  4. 从文件中读取一个long型数_Python 从文件中读取数据

    问题:在python中如何从文件中读取数据,比如有一个mydata.txt文件包含10000行,50列的数据,想提取某几列出来,比如1, 3,5列. 方法一,编一个读取数据的函数. import js ...

  5. C# checklistbox用户点击列表框上的一个项目,将选中的项的值显示到界面上,取消勾选时,同步在界面上取消

    简易场景:用户点击列表框上的一个项目,将选中的项的值显示到界面上,取消勾选时,同步在界面上取消. 注意,要在ItemCheck事件里面写(如果在mouseClick事件里写,会有很多坑爹的问题),该事 ...

  6. 刚做了一个梦,梦见自己错过了黄金十年

    刚刚做了一个很真实的梦! 梦见自己在ccnu校园! 突然骑车迎面走来一个露着勾勾的少女! 自己很心动! 结果我自己是ccnu的老师,和以前的一个领导在谈话! 这个领导叫住了她! 名字叫:吴丽!呵呵,不 ...

  7. es6 取数组的第一个和最后一个_ES6:解构——JavaScript 从数组和对象中提取数据的优雅方法...

    转载请注明出处,保留原文链接以及作者信息 ES6 有很多新特性,它很大程度上提升了 JavaScript 的编程体验,并且也告诉外界,JavaScript 依旧强势. 其中一个新特性是其对数组和对象的 ...

  8. 从文件中读取数据,排序之后输出到另一个文件中

    文件中有一组数据,要求排序后输出到另一个文件中去 主要有两个知识点: 排序.文件操作 C++/C代码如下: [cpp] view plaincopy #include<iostream> ...

  9. layui轮播图切换会有跳动_使用jQuery做了一个轮播图,但是在图片的切换中会出现闪烁情况,该如何解决?...

    使用jQuery的fadeIn和fadeOut 两个方法做轮播效果,每当切换的时候都会闪一下白色(容器的背景色),后来我将容器的背景色变为黑色后,在firefox和chrome中不太容易看出来,但是在 ...

最新文章

  1. 对象冒充_使用您的精神探照灯进行冒充冒名顶替综合症
  2. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第3章-基于代数连通度估计的多智能体系统群集运动控制
  3. 被压缩的视觉:视频编解码技术
  4. 数据集成之主数据管理(转载整理)
  5. leetcode738. 单调递增的数字
  6. 【转】刨根究底字符编码之三——字符编码的由来
  7. Git fetch pull 详解
  8. orangepi香橙派安装VNC Viewer远程桌面
  9. IDEA 常用快捷键
  10. 推荐一款绘画软件krita,开源正版免费,适合ps用户
  11. ClickHouse磁盘清理
  12. COSNET: Connecting Heterogeneous Social Networks with Local and Global Consistency 论文阅读笔记
  13. 大气科学领域必备的模型软件汇总丨WRF、WRF-CMAQ、WRF-Chem、WRF-Hydro、WRF DA、PMF、MCM、CAMx、SMOKE、CMIP6等
  14. 关于红帽RHCE考试的那些事儿
  15. 服务器销售工资如何计算公式,拿提成的工资怎么算的有公式吗
  16. 数字化模型是工业PaaS平台的核心
  17. 测试工程师需要具备的能力
  18. 专业档案门类代码编码方案
  19. 学习笔记之——李群与李代数的理解
  20. postgreSQL数据类型字符串和数值相互转换

热门文章

  1. 计算机应用虚拟仿真实验答案,虚拟仿真 实验教学+.ppt
  2. python去重复行_python 去除Excel中的重复行数据
  3. 微型计算机的分类有,微型计算机的分类
  4. 鸿蒙系统布局,华为的布局,开始了!第二款鸿蒙系统产品,即将亮相
  5. oracle01507报错,oracle报错ORA-01507
  6. php 如何实现全选,如何用thinkphp框架实现全选,反选,全不选功能?
  7. 数据分析pandas属性实现统计分析
  8. plsql无法连接64位oracle数据库的解决方法(图文解说)
  9. 鸟哥linux私房菜 之 老段带你学习linux
  10. 分布式计算第四章 RMI