LayUI树形组件绑定SQL Server递归表数据

it2024-04-13  46

标题 如何利用递归来给layui的树形组件绑定sqlServer递归表的数据?

上图是我的数据库内容

public ActionResult GetArea() { List<City> rootList = new List<City>(); foreach(var item in context.Area.Where(a => a.isroot == true)) { rootList.Add(new City { id = item.id, title = item.areaname, children = GetCity(item.id) }); } string str=JsonConvert.SerializeObject(rootList); return Json(str,JsonRequestBehavior.AllowGet); } public List<City> GetCity(int id) { //aa是id的所有孩子 var aa = context.Area.Where(a => a.parentid == id); if(aa.Count()==0) { return null; } List<City> child = new List<City>(); foreach(var item in aa)//遍历所有孩子 { child.Add(new City { id = item.id, title = item.areaname, children = GetCity(item.id) }); } return child; }

此处是我用Ef框架写的 这是layui文档上面告诉我们绑定树形组件上所需要的属性这里我们只需要title,id和children这三个属性

public class City { public string title { get; set; } public int id { get; set; } public List<City> children { get; set; } }

City类是我根据上面三个属性来创建的,方便页面发送ajax请求时返回的数据和树形组件在渲染时所需的data格式相同

"[{\"title\":\"河南省\",\"id\":1,\"children\":[{\"title\":\"洛阳市\",\"id\":2,\"children\":[{\"title\":\"涧西区\",\"id\":4,\"children\":[{\"title\":\"长安路\",\"id\":5,\"children\":[{\"title\":\"河南科技大学\",\"id\":6,\"children\":null},{\"title\":\"东方医院\",\"id\":11,\"children\":null}]}]},{\"title\":\"西工区\",\"id\":8,\"children\":[{\"title\":\"解放路\",\"id\":9,\"children\":[{\"title\":\"空导院\",\"id\":10,\"children\":null}]}]}]},{\"title\":\"郑州市\",\"id\":3,\"children\":[{\"title\":\"金水区\",\"id\":7,\"children\":null}]}]}]" //这是返回的json串

最后在页面上的展示效果 如下图:

----------------------------结束------------------------------ 希望最后能帮到大家,第一次写博客,看完点个赞再走呗

最新回复(0)