27.获取分配权限说里的选中的和未确定的节点id

 

1.父菜单有五棵树,

1.父菜单有5棵树。

2.其中有子菜单多一棵树。所以就是8棵树

==============2.获取父菜单有多少颗树================

=====我们要的是父菜单ul,要用一个只带选择器,加一个大于号;例如:  alert($("#windowOper >ul").length);

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>用户角色</title>
   
    <link href="~/EasyUI/themes/icon.css" rel="stylesheet" type="text/css" />
    <link href="~/EasyUI/themes/default/easyui.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="~/EasyUI/jquery.easyui.min.js"></script>
  
    <script type="text/javascript" src="~/Scripts/jquery.msgProcess.js"></script>
    <script type="text/javascript">
        //=====================1.加载数据======================
        $(function () {
            $('#Windowp').window('close');//编辑默认关闭
        
            $("#tbList").datagrid({
                width: 'auto',
                height: 400,
                striped: true,
                singleSelect: true,
                url: '/admin/Role/index',
                //queryParams:{},
                loadMsg: '数据加载中请稍后……',
                pagination: true,//启用分页,默认每页10行
                rownumbers: true,//显示页码,默认 提供 10 - 50 的页容量选择下拉框
                pageSize: 10,//设置 页容量为 5
                pageList: [10, 15, 20, 25, 30],//设置 页容量下拉框
                fitColumns:true,
                columns: [[
                     {
                         field: 'rIsShow', title: '显示', width:5,align: "center", formatter: function (value) {
                             return value ? "":"X";
                         }
                     },
                    { field: 'rId', title: 'ID', width: 20, align: "center" },
                    { field: 'Ou_Department', title: '部门', width: 20, align: "center", formatter: function (value) { return value.depName } },
                    { field: 'rName', title: '角色名', width: 20, align: "center" },
                 
                    {
                        field: 'rIsDel', title: '是否删除', width: 20, align: "center", formatter: function (value) {
                            switch (value.toString())
                            {
                                case "false":
                                    return "";
                                case "true":
                                    return "";
                            }
                        }
                    },
                        { field: 'rRemark', title: '备注', width: 20, align: "center" }
                ]],
                toolbar: [ 
                '-', {
                   iconCls:'icon-edit_add',
               text: "分配权限",
               handler: providePermission
            }
            ],
               //设置选中行
                onSelect: function (rowI, rD) {

                    selectRowIndex = rowI;//1.1将中的行设置为全局变量 设置给全局变量
                }
            });
           
        })
      
        //1.将中的行设置为全局变量
        var selectRowIndex = -1;

     
        //分配权限
       function  providePermission()
        {
           //获取选中 的 角色数据
           var roleData = $("#tbList").datagrid("getSelected");
           if (roleData) {
               //拿到角色id
               $.get("/admin/role/getroleTrue/" + roleData.rId, null, function (jsobj) {
                   if (jsobj.Statu)
                       $.procAjaxData(jsobj);
                   else
                      
                       $("#windowOper").html(jsobj);
                   
               });
           }
           else {  $.alertMsg("请选中您要分配权限的角色数据", "系统提示"); }
         
           $("#windowOper").wimdow("open");
       }
       function saveNewPermission()
       {
           alert($("#windowOper >ul").length);//用只带选择器,大于号,查询出父的ui,所以是5.
       }
    </script>
</head>
<body>
    <table id="tbList" style="width:700px;height:250px"></table>
  
    <div id="Windowp" class="easyui-window" title="分配权限" style="width:750px; height:300px;" data-options="iconCls:'icon-save',modal:true,title:'分配权限'">


        @*<div id="easyui-window" class="easyui-layout" data-options="fit:true">*@

        <div id="windowOper" data-options="region:'center',style="padding:10px;">

        </div>
        <div data-options="region:'south',border:false," style="text-align:right;padding:5px;">
            <a class="easyui-linkbutton" data-options="iconCls:'icon-save'," href="javascript:void(0)" onclick="saveNewPermission()">保存</a>

            <a class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" href="javascript:void(0)" onclick="javascript:alert('cancel')">取消</a>
        </div>
        @*</div>*@
    </div>
</body>
</html>

=======================3.获取第一颗树的,选中长度==================

保存后:弹出第一颗树,选中的长度。第一颗树的长度是2.

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>用户角色</title>
   
    <link href="~/EasyUI/themes/icon.css" rel="stylesheet" type="text/css" />
    <link href="~/EasyUI/themes/default/easyui.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="~/EasyUI/jquery.easyui.min.js"></script>
  
    <script type="text/javascript" src="~/Scripts/jquery.msgProcess.js"></script>
    <script type="text/javascript">
        //=====================1.加载数据======================
        $(function () {
            $('#Windowp').window('close');//编辑默认关闭
        
            $("#tbList").datagrid({
                width: 'auto',
                height: 400,
                striped: true,
                singleSelect: true,
                url: '/admin/Role/index',
                //queryParams:{},
                loadMsg: '数据加载中请稍后……',
                pagination: true,//启用分页,默认每页10行
                rownumbers: true,//显示页码,默认 提供 10 - 50 的页容量选择下拉框
                pageSize: 10,//设置 页容量为 5
                pageList: [10, 15, 20, 25, 30],//设置 页容量下拉框
                fitColumns:true,
                columns: [[
                     {
                         field: 'rIsShow', title: '显示', width:5,align: "center", formatter: function (value) {
                             return value ? "":"X";
                         }
                     },
                    { field: 'rId', title: 'ID', width: 20, align: "center" },
                    { field: 'Ou_Department', title: '部门', width: 20, align: "center", formatter: function (value) { return value.depName } },
                    { field: 'rName', title: '角色名', width: 20, align: "center" },
                 
                    {
                        field: 'rIsDel', title: '是否删除', width: 20, align: "center", formatter: function (value) {
                            switch (value.toString())
                            {
                                case "false":
                                    return "";
                                case "true":
                                    return "";
                            }
                        }
                    },
                        { field: 'rRemark', title: '备注', width: 20, align: "center" }
                ]],
                toolbar: [ 
                '-', {
                   iconCls:'icon-edit_add',
               text: "分配权限",
               handler: providePermission
            }
            ],
               //设置选中行
                onSelect: function (rowI, rD) {

                    selectRowIndex = rowI;//1.1将中的行设置为全局变量 设置给全局变量
                }
            });
           
        })
      
        //1.将中的行设置为全局变量
        var selectRowIndex = -1;

     
        //分配权限
       function  providePermission()
        {
           //获取选中 的 角色数据
           var roleData = $("#tbList").datagrid("getSelected");
           if (roleData) {
               //拿到角色id
               $.get("/admin/role/getroleTrue/" + roleData.rId, null, function (jsobj) {
                   if (jsobj.Statu)
                       $.procAjaxData(jsobj);
                   else
                      
                       $("#windowOper").html(jsobj);
                   
               });
           }
           else {  $.alertMsg("请选中您要分配权限的角色数据", "系统提示"); }
         
           $("#windowOper").wimdow("open");
       }
       function saveNewPermission() {
           var $tree = $("#windowOper >ul");//获取所有的树
           var nodes = $($tree[0]).tree("getChecked");//获取第一棵树
           alert(nodes.length);//弹出选中的长度
       };
    </script>
</head>
<body>
    <table id="tbList" style="width:700px;height:250px"></table>
  
    <div id="Windowp" class="easyui-window" title="分配权限" style="width:750px; height:300px;" data-options="iconCls:'icon-save',modal:true,title:'分配权限'">


        @*<div id="easyui-window" class="easyui-layout" data-options="fit:true">*@

        <div id="windowOper" data-options="region:'center',style="padding:10px;">

        </div>
        <div data-options="region:'south',border:false," style="text-align:right;padding:5px;">
            <a class="easyui-linkbutton" data-options="iconCls:'icon-save'," href="javascript:void(0)" onclick="saveNewPermission()">保存</a>

            <a class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" href="javascript:void(0)" onclick="javascript:alert('cancel')">取消</a>
        </div>
        @*</div>*@
    </div>
</body>
</html>

保存:弹出第一颗树选中的权限数量。

======4.获取分配权限说里的选中的========

index

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>用户角色</title>
   
    <link href="~/EasyUI/themes/icon.css" rel="stylesheet" type="text/css" />
    <link href="~/EasyUI/themes/default/easyui.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="~/EasyUI/jquery.easyui.min.js"></script>
  
    <script type="text/javascript" src="~/Scripts/jquery.msgProcess.js"></script>
    <script type="text/javascript">
        //=====================1.加载数据======================
        $(function () {
            $('#Windowp').window('close');//编辑默认关闭
        
            $("#tbList").datagrid({
                width: 'auto',
                height: 400,
                striped: true,
                singleSelect: true,
                url: '/admin/Role/index',
                //queryParams:{},
                loadMsg: '数据加载中请稍后……',
                pagination: true,//启用分页,默认每页10行
                rownumbers: true,//显示页码,默认 提供 10 - 50 的页容量选择下拉框
                pageSize: 10,//设置 页容量为 5
                pageList: [10, 15, 20, 25, 30],//设置 页容量下拉框
                fitColumns:true,
                columns: [[
                     {
                         field: 'rIsShow', title: '显示', width:5,align: "center", formatter: function (value) {
                             return value ? "":"X";
                         }
                     },
                    { field: 'rId', title: 'ID', width: 20, align: "center" },
                    { field: 'Ou_Department', title: '部门', width: 20, align: "center", formatter: function (value) { return value.depName } },
                    { field: 'rName', title: '角色名', width: 20, align: "center" },
                 
                    {
                        field: 'rIsDel', title: '是否删除', width: 20, align: "center", formatter: function (value) {
                            switch (value.toString())
                            {
                                case "false":
                                    return "";
                                case "true":
                                    return "";
                            }
                        }
                    },
                        { field: 'rRemark', title: '备注', width: 20, align: "center" }
                ]],
                toolbar: [ 
                '-', {
                   iconCls:'icon-edit_add',
               text: "分配权限",
               handler: providePermission
            }
            ],
               //设置选中行
                onSelect: function (rowI, rD) {

                    selectRowIndex = rowI;//1.1将中的行设置为全局变量 设置给全局变量
                }
            });
           
        })
      
        //1.将中的行设置为全局变量
        var selectRowIndex = -1;

     
        //分配权限
       function  providePermission()
        {
           //获取选中 的 角色数据
           var roleData = $("#tbList").datagrid("getSelected");
           if (roleData) {
               //拿到角色id
               $.get("/admin/role/getroleTrue/" + roleData.rId, null, function (jsobj) {
                   if (jsobj.Statu)
                       $.procAjaxData(jsobj);
                   else
                      
                       $("#windowOper").html(jsobj);
                   
               });
           }
           else {  $.alertMsg("请选中您要分配权限的角色数据", "系统提示"); }
         
           $("#windowOper").wimdow("open");
       }
       function saveNewPermission() {
           var nodeId = "";
           var $tree = $("#windowOper >ul");//1.获取所有的树
           for (var i = 0; i < $tree.length; i++) {//2.遍历所有树
               //3.获取每颗树里的  选中的节点
               var node = $($tree[i]).tree("getChecked");
               //4.遍历节点
               for (var j = 0; j < node.length;j++)
               {
                   nodeId += node[j].id + ","+node[j].text;//5.选中的id和名称
               }
               alert(nodeId);
           }
       }
          
      
    </script>
</head>
<body>
    <table id="tbList" style="width:700px;height:250px"></table>
  
    <div id="Windowp" class="easyui-window" title="分配权限" style="width:750px; height:300px;" data-options="iconCls:'icon-save',modal:true,title:'分配权限'">


        @*<div id="easyui-window" class="easyui-layout" data-options="fit:true">*@

        <div id="windowOper" data-options="region:'center',style="padding:10px;">

        </div>
        <div data-options="region:'south',border:false," style="text-align:right;padding:5px;">
            <a class="easyui-linkbutton" data-options="iconCls:'icon-save'," href="javascript:void(0)" onclick="saveNewPermission()">保存</a>

            <a class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" href="javascript:void(0)" onclick="javascript:alert('cancel')">取消</a>
        </div>
        @*</div>*@
    </div>
</body>
</html>

getroleTrue.cshtml(角色分配权限页)

@model MODEL.ViewModel.RolePermissionTree

<script type="text/javascript" src="~/EasyUI/jquery.easyui.min.js"></script>
<input type="hidden" value="@ViewBag.roleId" id="roleId" />
@*1.循环所有父菜单,为每个父菜单生成一棵树*@
@for (int i = 0; i < Model.Allparent.Count; i++)
{
    var parent = Model.Allparent[i];
    <ul id="tt@(i)" class="easyui-tree" style="display:inline-table;margin:5px;" data-options="checkbox:true,lines:true,cascadeCheck:false">
        <li data-options="id:@parent.pid@if(Model.UserPer.Where(uPer => uPer.pid == parent.pid).Count() > 0){//把父菜单pid赋值给id;获取选中的复选框
                        <text>,checked:true</text>}">
            <span>@parent.pName</span>
            <ul>
              @*2.生成子菜单,从所有菜单集合中 查出 属于当前循环 父菜单 的子菜单*@
                @foreach (var son in Model.AllPer.Where(p => p.pParent == parent.pid).ToList())
                {
                    @*3.如果 当前子菜单 和 用户菜单一样,则需设置为选中状态*@
              <li data-options="id:@son.pid@if(Model.UserPer.Where(uPer=>uPer.pid==son.pid).Count()>0){//把子菜单权限pid赋值id,获取选中的复选框
                        <text>,checked:true</text>}">
                        <span><a href="#">@son.pName</a></span>
                    </li>
                }
            </ul>
        </li>
    </ul>
}
   

单击:保存按钮弹出,选中的子权限。

==============5.获取分配权限说里的选中的和未确定的节点id==============

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>用户角色</title>
   
    <link href="~/EasyUI/themes/icon.css" rel="stylesheet" type="text/css" />
    <link href="~/EasyUI/themes/default/easyui.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="~/EasyUI/jquery.easyui.min.js"></script>
  
    <script type="text/javascript" src="~/Scripts/jquery.msgProcess.js"></script>
    <script type="text/javascript">
        //=====================1.加载数据======================
        $(function () {
            $('#Windowp').window('close');//编辑默认关闭
        
            $("#tbList").datagrid({
                width: 'auto',
                height: 400,
                striped: true,
                singleSelect: true,
                url: '/admin/Role/index',
                //queryParams:{},
                loadMsg: '数据加载中请稍后……',
                pagination: true,//启用分页,默认每页10行
                rownumbers: true,//显示页码,默认 提供 10 - 50 的页容量选择下拉框
                pageSize: 10,//设置 页容量为 5
                pageList: [10, 15, 20, 25, 30],//设置 页容量下拉框
                fitColumns:true,
                columns: [[
                     {
                         field: 'rIsShow', title: '显示', width:5,align: "center", formatter: function (value) {
                             return value ? "":"X";
                         }
                     },
                    { field: 'rId', title: 'ID', width: 20, align: "center" },
                    { field: 'Ou_Department', title: '部门', width: 20, align: "center", formatter: function (value) { return value.depName } },
                    { field: 'rName', title: '角色名', width: 20, align: "center" },
                 
                    {
                        field: 'rIsDel', title: '是否删除', width: 20, align: "center", formatter: function (value) {
                            switch (value.toString())
                            {
                                case "false":
                                    return "";
                                case "true":
                                    return "";
                            }
                        }
                    },
                        { field: 'rRemark', title: '备注', width: 20, align: "center" }
                ]],
                toolbar: [ 
                '-', {
                   iconCls:'icon-edit_add',
               text: "分配权限",
               handler: providePermission
            }
            ],
               //设置选中行
                onSelect: function (rowI, rD) {

                    selectRowIndex = rowI;//1.1将中的行设置为全局变量 设置给全局变量
                }
            });
           
        })
      
        //1.将中的行设置为全局变量
        var selectRowIndex = -1;

     
        //分配权限
       function  providePermission()
        {
           //获取选中 的 角色数据
           var roleData = $("#tbList").datagrid("getSelected");
           if (roleData) {
               //拿到角色id
               $.get("/admin/role/getroleTrue/" + roleData.rId, null, function (jsobj) {
                   if (jsobj.Statu)
                       $.procAjaxData(jsobj);
                   else
                      
                       $("#windowOper").html(jsobj);
                   
               });
           }
           else {  $.alertMsg("请选中您要分配权限的角色数据", "系统提示"); }
         
           $("#windowOper").wimdow("open");
       }
       function saveNewPermission() {
           var nodeId = "";
           var $tree = $("#windowOper >ul");//1获取所有的树
           for (var i = 0; i < $tree.length; i++) {//2.遍历所有树
               //3.获取每颗树里的  选中的节点
               var nodes = $($tree[i]).tree("getChecked");
               //3.1获取每颗树里的 选中的节点
               var node2 = $($tree[i]).tree('getChecked', 'indeterminate');
               //3.2将两个节点数组合并
               nodes = nodes.concat(node2);
               //4.遍历节点
               for (var j = 0; j < nodes.length;j++)
               {
                   nodeId += nodes[j].id+"," ;
               }
               
           }
           alert(nodeId);
       }
          
      
    </script>
</head>
<body>
    <table id="tbList" style="width:700px;height:250px"></table>
  
    <div id="Windowp" class="easyui-window" title="分配权限" style="width:750px; height:300px;" data-options="iconCls:'icon-save',modal:true,title:'分配权限'">


        @*<div id="easyui-window" class="easyui-layout" data-options="fit:true">*@

        <div id="windowOper" data-options="region:'center',style="padding:10px;">

        </div>
        <div data-options="region:'south',border:false," style="text-align:right;padding:5px;">
            <a class="easyui-linkbutton" data-options="iconCls:'icon-save'," href="javascript:void(0)" onclick="saveNewPermission()">保存</a>

            <a class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" href="javascript:void(0)" onclick="javascript:alert('cancel')">取消</a>
        </div>
        @*</div>*@
    </div>
</body>
</html>

 

posted @ 2017-04-27 16:39  狼牙者.net  阅读(176)  评论(0编辑  收藏  举报