根据数据库动态加载ztreenode的check属性

效果图
在这里插入图片描述
思路:
这样选择后的数据是
在这里插入图片描述
这样放的,用分隔符 | 把每个目录的id分割开来,然后要调用的时候在controller用splid函数获取每个id(会去除掉分隔符),然后再存储到list中,然后返回json对象与获取到的全部菜单进行对比,动态加checked属性

先是js

$(document).ready(function () {
            var sssssss = document.getElementById("userid").value;//这个是用户id
            //这个是获取分配权限的目录的
            $.get("/get/menulist", { uid: sssssss }, function (dataother) {  //找出该用户之前的权限目录
                console.log(dataother);   //权限目录对象json
                //这个是获取全部目录的
                $.get("/menu/ss", function (data) {  //data是string类型的json
                    //  alert(data);
                    // console.log(data);
                    var zNode = JSON.parse(data);    //获取到全部目录json对象
                    // console.log(zNode);
                    // alert(zNode.Table[0].id);
                    console.log(zNode);
                    for (var i = 0; i < zNode.Table.length; i++) {   //对比
                        for (var j = 0; j < dataother.total; j++) {
                            if (zNode.Table[i].id == dataother.rows[j])
                                zNode.Table[i]["checked"] = "true";    //自己加数据进去
                        }
                    }
                    console.log(zNode);


                    //console.log(zNode);
                    var znode = zNode.Table;

                    zTreeObj = $.fn.zTree.init($("#menuTree"), setting, znode);
                    console.log(zTreeObj);

                })
            })
    })

权限目录json对象:
在这里插入图片描述

全部目录和权限目录对比后的json对象
在这里插入图片描述

然后是权限目录controller:

		[HttpGet]
        [Route("get/menulist")]
        public IHttpActionResult getmenulist() {

            try
            {
                 var request = HttpContext.Current.Request;
                 var uid = request.QueryString["uid"];    //get的获取数据方式可以看我其他博客有写
                string sql = "select menulistid from usermenu where userid='"+uid+"' ";
                
                DataBase bs = new DataBase();    //这个类完整函数我有在其他博客贴出来
                DataTable dt=bs.GetDataTable(sql);
                string menulist=dt.Rows[0][0].ToString();
                string[] sArray = menulist.Split('|');
                string ss;
                List<string> lt = new List<string>();

                foreach (string i in sArray)
                {
                    if (i != null && i != "")
                    {
                        ss = i.ToString();
                        lt.Add(ss);

                    }
                }
                //List<usertable> lt = datasettolist.DataSetToList<menulist>(dt, 0);    //用到实体类将数据与实体类映射

                var total = lt.Count;        //总数
                var rows = lt.Skip(0).ToList();      //分页存储到List中

                return Json(new { total = total, rows = rows });      //然后才转换成Json传递

            }
            catch (Exception ex)
            {

                return Ok(ex.Message);
            }
        
        }

有不懂的可以下面留言,我很活跃的

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值