zoukankan      html  css  js  c++  java
  • 实现为用户分配角色按钮

    实现为用户分配角色按钮

    1.  添加为用户分配角色按钮

    1. 添加一个div,用来存放按钮跳出的界面

     

    1. 添加一个函数用来把当前点击的id值发送给后端。
    //为用户分配权限函数
    
            function showSetUserActionInfo() {
    
                //判断一下用户是否选择了要修改的数据
    
                var rows = $('#tt').datagrid('getSelections');//获取所选择的行
    
                if (rows.length != 1) {
    
                    $.messager.alert("提示", "请选择要分配权限的用户", "error");
    
                    return;
    
                } //设置添加src属性,将id的值通过get的形式发送给ShowUserAction方法
    
          $("#setUserActionFrame").attr("src", "/UserInfo/ShowUserAction/?userId=" + rows[0].ID);
    
                //发送之后将div显示出来
    
                $("#setUsrActionDiv").css("display", "block");
    
                //展示将要显示的数据
    
                $('#setUsrActionDiv').dialog({
    
                    title: '为用户分配权限数据',
    
                     400,
    
                    height: 300,
    
                    collapsible: true,
    
                    maximizable: true,
    
                    resizable: true,
    
                    modal: true,
    
                    buttons: [{
    
                        text: 'Ok',   //确定按钮
    
                        iconCls: 'icon-ok',
    
                        handler: function () {
    
                        }
    
                    }, {
    
                        text: 'Cancel',   //取消按钮
    
                        handler: function () {
    
                            $('#setUsrActionDiv').dialog('close');
    
                        }
    
                    }]
    
                });
    
            }

    3.5   在父窗体中添加一个关闭当前窗体的方法,是为子窗体写的方法

    //为用户分配完成角色以后调用的方法。  并且是由子窗体调用
    
            function afterSetUserRole(data) {
    
                if (data == "ok") {
    
                    $('#setUsrRoleDiv').dialog('close');
    
                }
    
            }
    1. 后端接收id的值,并且根据id的值查询出当前用户的信息与当前用户的角色信息,还有所有的角色的信息

     

    public ActionResult ShowUserRoleInfo()
    
            {
    
                //接受id的属性的值
    
                int id = int.Parse(Request["id"]);
    
                //查询id为上方的数据
    
                var userInfo = UserInfoService.LoadEntities(u => u.ID == id).FirstOrDefault();
    
                ViewBag.UserInfo = userInfo;    //通过该方法把数据返回到前端,相当于ViewDate
    
                //查询所有的角色.
    
                short delFlag = (short)DeleteEnumType.Normarl;    //   delFlag=0
    
                var allRoleList = RoleInfoService.LoadEntities(r => r.DelFlag == delFlag).ToList();
    
                //查询一下要分配角色的用户以前具有了哪些角色编号。
    
                var allUserRoleIdList = (from r in userInfo.RoleInfo
    
                                         select r.ID).ToList();
    
                ViewBag.AllRoleList = allRoleList;   //通过该方法把数据返回到前端,相当于ViewDate
    
                ViewBag.AllUserRoleIdList = allUserRoleIdList;
    
                return View();
    
            }
    
     
    1. 添加一个视图界面
    @{
    
        Layout = null;
    
    }
    
    @using Model
    
    <!DOCTYPE html>
    
    <html>
    
    <head>
    
        <meta name="viewport" content="width=device-width" />
    
        <title>为用户分配角色</title>
    
        <script src="~/Scripts/jquery-ui-1.8.24.min.js"></script>
    
        <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    
        <script type="text/javascript">
    
            function subForm() {
    
                $("#setUserRoleForm").submit();
    
            }
    
            function afterSet(data) {
    
                window.parent.afterSetUserRole(data);
    
            }
    
        </script>
    
    </head>
    
    <body>
    
        <div>
    
            为  @{    
    
                UserInfo userInfo = ViewBag.UserInfo;
    
                <span style="font-size:14px;color:red;font-weight:bold"> @userInfo.UName</span>
    
            }  用户分配角色<br />
    
            @{
    
                using (Ajax.BeginForm("SetUserRoleInfo", "UserInfo", new { }, new AjaxOptions() { OnSuccess = "afterSet", HttpMethod = "post" }, new { id = "setUserRoleForm" }))
    
                {
    
                    <input type="hidden" name="userId" value="@userInfo.ID" />
    
                    List<RoleInfo> allRoleList = ViewBag.AllRoleList;        //全部的角色信息
    
                    List<int> roleIdList = ViewBag.AllUserRoleIdList;           //该角色已经有的角色信息
    
                    foreach (RoleInfo roleInfo in allRoleList)
    
                    {               //便利全部的角色信息
    
                        var roleName = "cba_" + roleInfo.ID;
    
                        if (roleIdList.Contains(roleInfo.ID))                  //如果有这个角色信息
    
                        {
    
                            //设置勾选  checked="checked"
    
                            <input type="checkbox" name="@roleName" value="@roleInfo.ID" checked="checked" />@roleInfo.RoleName
    
                        }
    
                        else
    
                        {
    
                            <input type="checkbox" name="@roleName" value="@roleInfo.ID" />@roleInfo.RoleName
    
                        }
    
                    }
    
                }
    
            }
    
        </div>
    
    </body>
    
    </html>
    1. IBll业务层添一个接口
    2. Bll层添加一个方法执行接口
  • 相关阅读:
    读取数据变JSON传值!
    YII2.0多条件查询升级版
    JS跳转页面方法
    yii的简单片段缓存
    我读过的最好的epoll讲解--转自”知乎“
    I/O多路复用详解
    ”open-close"prinple (OCP)
    获取本机的IPv4或者v6地址
    .Net 下未捕获异常的处理
    TCP断开连接的过程
  • 原文地址:https://www.cnblogs.com/wangjinya/p/10886961.html
Copyright © 2011-2022 走看看