首页 技术 正文
技术 2022年11月14日
0 收藏 637 点赞 3,059 浏览 1716 个字

1:读取父级下的所有子类别

*ViewBag.ParentItemList:不能与ParentId相同
 private void ParentDropDownList()
{
List<SAS.Model.BPMS_SysMenu> list = new List<SAS.Model.BPMS_SysMenu>();
StringBuilder strWhere = new StringBuilder();
List<SelectListItem> selectList = new List<SelectListItem>();
list = bll.GetModelList(strWhere.ToString());
foreach (var item in list)
{
if (item.ParentId.Equals(""))
{
var parentList = bll.GetModelList(strWhere.ToString()).Where(d => d.ParentId == item.MenuId);
foreach (var plitem in parentList)
{
string parentName = plitem.FullName;
string parentId = plitem.MenuId.ToString();
selectList.Add(new SelectListItem
{
Text = "├-" + parentName,
Value = parentId
});
string pid = parentId;
string tag = " |- ";
ChildrenList(pid, tag, selectList);
}
ViewBag.ParentItemList = new SelectList(selectList, "Value", "Text");
}
} }

2:遍历读取所有子类别下的孙类别。

     private void ChildrenList(string pid, string tag, List<SelectListItem> selectList)
{
StringBuilder strWhere = new StringBuilder();
var childrenList = bll.GetModelList(strWhere.ToString()).Where(d => d.ParentId == pid);
foreach (var clitem in childrenList)
{
string clname = tag + clitem.FullName;
string clid = clitem.MenuId.ToString();
selectList.Add(new SelectListItem
{
Text = clname,
Value = clid
});
string pid2 = clid;
string tag2 = tag + " -- ";
ChildrenList(pid2, tag2, selectList);
}
}

3:在需要的地方调用父类方法

public ActionResult Edit(string id)
{
ViewBag.ControllerName = RouteData.Values["controller"].ToString().ToLower();
var model = new SAS.Model.BPMS_SysMenu();
model=bll.GetModel(id);
if (model != null)
{
ParentDropDownList();
return View(model);
}
else
{
return View("");
}
}

4:在页面调用

<div class="form-group">
<label class="col-md-3 control-label">上级模块</label>
<div class="col-md-4">
@Html.DropDownListFor(model => model.ParentId, ViewBag.ParentItemList as IEnumerable<SelectListItem>, new { @class = "form-control" })
<span class="help-block">
</span>
</div>
</div>

效果如下:

ASP.NET MVC Select无限级分类选择下拉框

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,084
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,559
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,408
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,181
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,818
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,901