// 递归添加版块分类
privatevoidBindTreeCa()
{
//每次加载前先清空
litTree.Text="";
//从数据库中获取分类数据集
DataSetds=newDAL.CategoryDAO().GetList("");
if (ds.Tables.Count>0)
{
//Linq先加载顶级分类
varquery1=ds.Tables[0].AsEnumerable().Where(x=>x["pid"].ToString() =="0");
//循环添加
foreach (variteminquery1)
{
litTree.Text+="<a href='showforum.aspx?caid="+item["id"] +"&cabh="+item["bh"] +"' target='_blank'>"+item["caname"] +"</a></br>";
intindex=1;
AddChildListItem(ds, item["id"].ToString(), index);
}
}
}
// 递归添加子项
privatevoidAddChildListItem(DataSetds, stringpid, intindex)
{
inttmp=index; // 保存层级
// 计算前面的空白
stringspace_str="";
for (inti=0; i<index; i++)
{
space_str+="...";
}
varquery1=ds.Tables[0].AsEnumerable().Where(x=>x["pid"].ToString() ==pid);
foreach (variteminquery1)
{
litTree.Text+=space_str+"<a href='showforum.aspx?caid="+item["id"] +"&cabh="+item["bh"] +"' target='_blank'>"+item["caname"] +"</a></br>";
index++;
AddChildListItem(ds, item["id"].ToString(), index);
index=tmp; // 还原层级
}
}