コード例 #1
0
        public ActionResult Dept()
        {
            var deptModel = new DeptJqGridModel();

            SetupDeptJqGridModel(deptModel.DeptsGrid);
            return(View(deptModel));
        }
コード例 #2
0
        public ActionResult Dept_EditData(Guid?nodeid, int?n_level, Guid?parent_id, DXInfo.Models.Dept dept)
        {
            var deptModel = new DeptJqGridModel();

            SetupDeptJqGridModel(deptModel.DeptsGrid);
            //部门编码长度
            var nc             = db.NameCode.Where(w => w.Type == "DeptCodeLength").FirstOrDefault();
            int deptCodeLength = 3;

            if (nc != null)
            {
                deptCodeLength = Convert.ToInt32(nc.Value);
            }
            if (dept.DeptCode.Length % deptCodeLength != 0)
            {
                return(deptModel.DeptsGrid.ShowEditValidationMessage("部门编码长度不正确!"));
            }

            if (deptModel.DeptsGrid.AjaxCallBackMode == AjaxCallBackMode.EditRow)
            {
                using (var contex = db)
                {
                    var olddept = contex.Depts.Where(w => w.DeptId == dept.DeptId).FirstOrDefault();
                    if (olddept.DeptCode != dept.DeptCode)
                    {
                        return(deptModel.DeptsGrid.ShowEditValidationMessage("部门编码不能修改!"));
                    }
                    //olddept.DeptCode = dept.DeptCode;
                    olddept.DeptName = dept.DeptName;
                    olddept.Comment  = dept.Comment;
                    olddept.Address  = dept.Address;
                    contex.SaveChanges();
                }
            }
            if (deptModel.DeptsGrid.AjaxCallBackMode == AjaxCallBackMode.AddRow)
            {
                var d = db.Depts.Where(w => w.DeptCode == dept.DeptCode).FirstOrDefault();
                if (d != null)
                {
                    return(deptModel.DeptsGrid.ShowEditValidationMessage("部门编码已存在!"));
                }
                //if (dept.DeptCode.Length == deptCodeLength)
                //{
                //    var d3 = db.Depts.Where(w => w.ParentDeptId == null).FirstOrDefault();
                //    if (d3 != null)
                //    {
                //        return deptModel.DeptsGrid.ShowEditValidationMessage("顶级部门已存在!");
                //    }
                //}
                if (dept.DeptCode.Length > deptCodeLength)
                {
                    string strParentDeptCode = dept.DeptCode.Substring(0, dept.DeptCode.Length - deptCodeLength);
                    var    d2 = db.Depts.Where(w => w.DeptCode == strParentDeptCode).FirstOrDefault();
                    if (d2 == null)
                    {
                        return(deptModel.DeptsGrid.ShowEditValidationMessage("上级部门编码" + strParentDeptCode + "不存在!"));
                    }
                    parent_id = d2.DeptId;
                }
                using (var context = db)
                {
                    DXInfo.Models.Dept newdept = new DXInfo.Models.Dept();
                    newdept.DeptId       = Guid.NewGuid();
                    newdept.ParentDeptId = parent_id;
                    newdept.DeptCode     = dept.DeptCode;
                    newdept.DeptName     = dept.DeptName;
                    newdept.Address      = dept.Address;
                    newdept.Comment      = dept.Comment;
                    context.Depts.Add(newdept);
                    context.SaveChanges();
                }
            }
            return(RedirectToAction("Dept"));
        }
コード例 #3
0
        public ActionResult Dept_RequestData(Guid?nodeid, int?n_level)
        {
            //Guid? deptID = nodeid;
            int level = n_level.HasValue ? (int)n_level + 1 : 0;

            //获取叶节点
            var leaf = (from d in db.Depts
                        join dd in db.Depts on d.DeptId equals dd.ParentDeptId into temp
                        from dleaf in temp.DefaultIfEmpty()
                        where dleaf.DeptId == null
                        select d.DeptId).ToList();
            List <DXInfo.Models.Dept> depts = null;

            if (nodeid.HasValue)
            {
                depts = db.Depts.Where(w => w.ParentDeptId == nodeid.Value).OrderBy(o => o.DeptCode).ToList();
            }
            else
            {
                depts = db.Depts.OrderBy(o => o.DeptCode).ToList();
            }

            var nc             = db.NameCode.Where(w => w.Type == "DeptCodeLength").FirstOrDefault();
            int deptCodeLength = 3;

            if (nc != null)
            {
                deptCodeLength = Convert.ToInt32(nc.Value);
            }

            var ldepts = from d in depts
                         select new
            {
                d.DeptId, d.ParentDeptId, d.DeptCode, d.DeptName, d.Address, d.Comment,
                level     = d.DeptCode.Length / deptCodeLength - 1,
                parent_id = (d.ParentDeptId.HasValue)?d.ParentDeptId.Value.ToString():"",
                isLeaf    = leaf.Contains(d.DeptId)?"true":"false",
                expanded  = "false"
            };
            var deptModel = new DeptJqGridModel();

            SetupDeptJqGridModel(deptModel.DeptsGrid);

            //var depts = GetDept(nodeid);
            //JsonResult json = new JsonResult();
            //json.JsonRequestBehavior = JsonRequestBehavior.AllowGet;


            //json.Data = new
            //{
            //    page = 1,
            //    total = 1,
            //    records = depts.Count,
            //    rows = (from dept in depts
            //            select new
            //            {
            //                cell = new string[] {
            //                dept.DeptId.ToString(),
            //                dept.ParentDeptId != null ? dept.ParentDeptId.ToString() : "",
            //                dept.DeptCode,
            //                dept.DeptName,
            //                dept.Address,
            //                dept.Comment,
            //               (dept.DeptCode.Length/3-1).ToString(),//level
            //                (dept.ParentDeptId.HasValue)?dept.ParentDeptId.Value.ToString():"null",//parent_id
            //                (dept.ParentDeptId==null)?"false":"true",//isLeaf
            //                "false"//expanded
            //            }
            //            })
            //};

            //return json;

            //List<JQTreeNode> ltn = new List<JQTreeNode>();
            //foreach(DXInfo.Models.Dept d in depts)
            //{
            //    JQTreeNode tn = new JQTreeNode();
            //    tn.Text = d.DeptName;
            //    tn.Value = d.DeptId.ToString();
            //}
            //deptModel.DeptsGrid.PagerSettings.PageSize = ldepts.Count();
            return(deptModel.DeptsGrid.DataBind(ldepts.OrderBy(o => o.level).OrderBy(o => o.DeptCode).ToList().AsQueryable()));
        }