二、MVC+EF控制器和后台交互(3)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36792339/article/details/82876656

一、下拉框的使用
后台:

        Model.Entities db = new Model.Entities();
        private ActionResult TreeBind()
        {
            List<StrucInfo> list = db.StrucInfo.ToList();    // 1、将数据集从数据库下载下来,存储在变量里,后面的操作都是从变量里面去过滤还拼接
            List<StrucInfo> parentList = list.Where(o => o.StrucPid == 0).ToList();
            List<StrucInfo> childList = null;

            List<SelectListItem> select1 = new List<SelectListItem>();  

            //这里实现三级下拉   可以放实体数据 也可以数据库读取  (不过需要修改里面与数据库对应的字段名)
            select1.Add(new SelectListItem { Value = 0.ToString(), Text = "顶级目录" });

            foreach (var item in parentList)
            {
                select1.Add(new SelectListItem { Value = item.StrucId.ToString(), Text = "├ " + item.StrucName });  
                childList = list.Where(o => o.StrucPid == item.StrucId).ToList();  // 1、将数据集在条件查询
                foreach (var child in childList)
                {
                    string name1 = HttpUtility.HtmlDecode("&nbsp;&nbsp;&nbsp;&nbsp;├ " + child.StrucName);
                    select1.Add(new SelectListItem
                    {
                        Value = child.StrucId.ToString(),
                        Text = name1
                    });
                    childList = list.Where(o => o.StrucPid == child.StrucId).ToList();
                    foreach (var childs in childList)
                    {
                        string names = HttpUtility.HtmlDecode("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├" + childs.StrucName);
                        select1.Add(new SelectListItem
                        {
                            Value = childs.StrucId.ToString(),
                            Text = names
                        });
                    }

                }
            }
            ViewData["selCategorys"] = new SelectList(select1, "Value", "Text", "");
            return View();
        }


        public ActionResult Index()
        {

          TreeBind();
          //List<UserInfo> userinfo = db.UserInfo.Where(u =>u.UserId ==1).ToList();//获取用户的信息
          //List<OrgInfo> orginfo = db.OrgInfo.Where(u => u.OrgOwn == 1).ToList(); //获取拥有的组织  tolist 草可

          //List<StrucInfo> strucinfo = db.StrucInfo.Where(u => u.StrucOrgIdPk== 1).ToList(); //获取拥有的组织

            return View();
        }

前台

   @Html.DropDownList("ArticleType", ViewData["selCategorys"] as SelectList, new { @class = "form-control", filter = "false" })

二、拼接菜单

using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace LawOA.UserWeb.Controllers
{
    public class IndexController : Controller
    {
        // GET: Index

        Model.Entities db = new Model.Entities();
        private string Menubind()
        {

           
            List<OrgInfo> orginfo = db.OrgInfo.Where(u => u.OrgOwn == 1).ToList(); //获取用户拥有的组织 ToList用户遍历
            List<StrucInfo> orginfolist;
            List<StrucInfo> parentList;
            List<StrucInfo> childList;

            List<SelectListItem> select1 = new List<SelectListItem>();

            string data="";

            foreach (var item in orginfo)  //组信息  例如 若干律师所
            {
                data+= " <div class='team-group'> <div class='team-group-title-box active'> <div class='lvsuo'>律所</div> <div class='team-group-title'> <p class=' overflow-hidden mb5'>不知所谓律师事务所<i class='iconfont icon-qiyegongchangjianzhu color-orange fr f20'></i></p> <p><i class='iconfont icon-tuanduishezhi f24 vm mr5'></i>5人</p> </div></div>";
                data += "<div class='team-group-list'> <dl>";

                orginfolist = db.StrucInfo.Where(u => u.StrucOrgIdPk == item.OrgId).ToList();//获取 组织结构为律所id的所有结构
                parentList = orginfolist.Where(o => o.StrucPid == 0).ToList(); 
                childList = null;

                foreach (var childItem in parentList)
                {
                    data += " <dd class='content-level1'><i class='iconfont icon-fenji f14 vsup' ></i>" + childItem.StrucName + "</dd>";

					//start循环调用可以实现无限极
                    childList = orginfolist.Where(o => o.StrucPid == childItem.StrucId).ToList();  // 1、将数据集在条件查询
                    foreach (var child in childList)
                    {
                        data += " <dd class='content-level2'><i class='iconfont icon-fenji f14 vsup' ></i>" + child.StrucName + "</dd>";
                    }
                    //end循环调用
                }

                data += "</dl ></div ></div >";

            }


            //List<StrucInfo> list = db.StrucInfo.ToList();
     
            //List<StrucInfo> parentList = list.Where(o => o. == 0).ToList(); //先获取父节点

            // return Content(data);
            


            return data.ToString();

        }


        public ActionResult Index()
        {

            ViewData["name"] = Menubind();
            
            //List<UserInfo> userinfo = db.UserInfo.Where(u =>u.UserId ==1).ToList();//获取用户的信息
            //List<OrgInfo> orginfo = db.OrgInfo.Where(u => u.OrgOwn == 1).ToList(); //获取拥有的组织  tolist 草可

            //List<StrucInfo> strucinfo = db.StrucInfo.Where(u => u.StrucOrgIdPk== 1).ToList(); //获取拥有的组织

            return View();
        }



    }
}

猜你喜欢

转载自blog.csdn.net/weixin_36792339/article/details/82876656