C#拼接下拉列表框相关:
/// <summary>
/// 递归得到它的所有祖宗以selectlist的形式进行拼接
/// </summary>
/// <param name="son"></param>
/// <param name="sbr"></param>
void getSelectList(SubItem son, StringBuilder sbr)
{
StringBuilder inSbr = new StringBuilder();
if (son != null)
{
if (son.ParentID == 0)
inSbr.Append("<select name='Parent' onchange = 'areaOnSelect(this)' >");
else
inSbr.Append("<select name='Sub'>");
GetCommon_CategoryByLevel(son.Level).ToList().ForEach(i =>
{
if (i.ID == son.ID)
inSbr.Append("<option value='" + i.ID + "' selected='true'>" + i.Name + "</option>");
else
inSbr.Append("<option value='" + i.ID + "'>" + i.Name + "</option>");
});
inSbr.Append("</select>");
sbr.Insert(0, inSbr);
getSelectList(son.Parent, sbr);
}
}
C#得到同一深度的节点(同辈节点)相关:
/// <summary>
/// 得到指定深度的列表
/// </summary>
/// <param name="level"></param>
/// <returns></returns>
public List<SubItem> GetCommon_CategoryByLevel(int level)
{
var linq = from data1 in _subList
join data2 in _subList on data1.ParentID equals data2.ID into list
select new SubItem
{
ID = data1.ID,
Level = data1.Level,
Name = data1.Name,
Parent = list.FirstOrDefault(),
ParentID = data1.ParentID,
};
return linq.Where(i => i.Level.Equals(level)).ToList();
}
MVC页面action相关:
public ActionResult Category(int? id)
{
ViewData["Parent"] = new SelectList(_subList.Where(i => i.ID == (id ?? 0)), "ID", "Name", id ?? 1);
SubItem current = _subList.FirstOrDefault(i => i.ID == (id ?? 1));
GetFather(current);
StringBuilder sbr = new StringBuilder();
getSelectList(current, sbr);
ViewData["edit"] = sbr.ToString();//修改时,进行绑定
return View();
}
MVC页面代码相关:
@Html.Raw(ViewData["edit"].ToString())
C#树型结构实体类相关:
/// <summary>
/// 树型分类结构
/// </summary>
public class Category
{
/// <summary>
/// 父ID
/// </summary>
public int ParentID { get; set; }
/// <summary>
/// 树ID
/// </summary>
public int ID { get; set; }
/// <summary>
/// 树名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 深度
/// </summary>
public int Level { get; set; }
/// <summary>
/// 子孙节点
/// </summary>
public List<Category> Sons { get; set; }
/// <summary>
/// 父节点
/// </summary>
public Category Parent { get; set; }
}










