0
点赞
收藏
分享

微信扫一扫

票证下发总结

萧萧雨潇潇 2022-04-29 阅读 88
开发语言

1.页面布局
(1)添加控制器(2)在控制器添加视图(3)添加HTML代码(4)引入css样式(5)引入js
2.写视图样式
@{
Layout = null;
}

Index

票 证 下 发

@*下发票数 限制只能输入整数*@ 票证下发 前往票证维护

(10)调用js方法,编写下拉框样式
createSelect(“UserID”, “SelectUser”);
});

3.转到控制器去写递归方法 /// /// 根据用户ID查询出用户的下级员工及自己 /// /// public ActionResult SelectUser() { (1)获取当前用户的id int userID = Convert.ToInt32(Session["UserID"].ToString()); //根据用户id查询出当前用户的信息 S_User dbUser = myModel.S_User.SingleOrDefault(o => o.userID == userID); (2)查询所有下级用户组(linq递归查询),查询与userGroupID相同的GetChildGroup方法里面的superiorUserGroupID 定义childGroups变量,用来存储查询出的数据 List childGroups = GetChildGroup(dbUser.userGroupID).ToList(); (6)查询出所有的用户组id,根据id将用户查询出来(需要调用查询用户组方法) List childGroupIds = childGroups.Select(o => o.userGroupID).ToList(); (7)根据用户表,查询员工 var list = (from tbUser in myModel.S_User join tbUserGroup in myModel.S_UserGroup on tbUser.userGroupID equals tbUserGroup.userGroupID where childGroupIds.Contains(tbUser.userGroupID) select new { id= tbUser.userID, text=tbUser.jobNumber+""+tbUser.userName }).ToList(); (7)添加自己的信息到列表 list.Add(new { id = dbUser.userID, text = dbUser.jobNumber + "" + dbUser.userName, }); (8)根据id进行排序,OrderBy进行排序 list = list.OrderBy(m => m.id).ToList(); (9)返回数据 return Json(list, JsonRequestBehavior.AllowGet); } /// /// 递归查询下级用户 /// /// ///
    private IEnumerable<S_UserGroup>GetChildGroup(int superiorUserGroupId)
    {
        (3)查询二级用户(从S_UserGroup中查询,查询superiorUserGroupID是否与输入的值相同,相同则输出)
        var query = (from tbUserGroup in myModel.S_UserGroup
                     where tbUserGroup.superiorUserGroupID == superiorUserGroupId
                     select tbUserGroup).ToList();
        (4)将query变量里面的方法反复查询
        //调用GetChildGroup方法本身,进行多次递归
        //利用userGroupID进行查询,查询与它相同的superiorUserGroupID
        IEnumerable<S_UserGroup> childGroup = query.ToList()
            .SelectMany(m => GetChildGroup(m.userGroupID));
        (5)将query和childGroup变量查询出的结果合并在一起
        return query.ToList().Concat(childGroup);
    }
举报

相关推荐

0 条评论