C#递归生成HTML树

 public StringBuilder str = new StringBuilder();   //定义一个字符串

private void get_navigation_childs(List<TableClass> oldData, string parent_id)
{
List<TableClass> dr = oldData.Where(x => x.PCode == parent_id).OrderBy(x => x.Kid).ToList();     //Code代表节点信息,PCode代表父级节点信息,PMMC代表节点名称
bool isWrite = false; //是否输出开始标签
for (int i = 0; i < dr.Count(); i++)
{
//如果是顶级导航
if (parent_id == "")
{
str.Append("<ul>");
str.Append("<li class='parent_li' >");

str.Append("<span title='Collapse this branch'>");
str.Append("<i class='icon-folder-open'></i>" + dr[i].PMMC + "</span> ");
//str.Append("<a href='RoleListEdit.aspx?);
//str.Append("<a data='RoleListList.aspx?);
//调用自身迭代
this.get_navigation_childs(oldData, dr[i].Code);
str.Append("</ul>");

}
else //下级导航
{
if (!isWrite)
{
isWrite = true;
str.Append("<ul>");
}
str.Append("<li>");
str.Append(" <span><i class='icon-leaf'></i>" + dr[i].PMMC + "</span>");
//str.Append("<a href='RoleListEdit.aspx?);
//str.Append("<a data='RoleListList.aspx?);
//调用自身迭代
this.get_navigation_childs(oldData, dr[i].Code);
str.Append("</li>");
if (i == (dr.Count() - 1))
{
str.Append("</ul>");
}
}
}
}

 
View Code

相关文章: