public ActionResult Dept() { var deptModel = new DeptJqGridModel(); SetupDeptJqGridModel(deptModel.DeptsGrid); return(View(deptModel)); }
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")); }
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())); }