日期:2014-05-17  浏览次数:21042 次

c#.net无限级分类代码

#region 生成文章分类列表
??????? /// <summary>
??????? /// 生成文章分类列表
??????? /// </summary>
??????? /// <returns></returns>
??????? public DataTable Admin_ShowClass_Option()
??????? {
??????????? DataTable aa;
??????????? DataTable dt;
??????????? dt = GetList("").Tables[0];

??????????? aa = dt.Clone();??? //复制表结构
??????????? DataRow[] drs = dt.Select("ParentId= 0");

??????????? foreach (DataRow r in drs)
??????????? {
??????????????? string nodeid = r["ClassId"].ToString();
??????????????? string text = r["ClassDesc"].ToString();
??????????????? string parentid = r["ParentId"].ToString();
??????????????? //this.dropParent.Items.Add(new ListItem(text, nodeid));
??????????????? aa.Rows.Add(r.ItemArray);
??????????????? int sonparentid = int.Parse(nodeid);
??????????????? string blank = "&nbsp;&nbsp;";
??????????????? BindNode(sonparentid, dt, blank, ref aa);
??????????? }
??????????? return aa;
??????? }
??????? private void BindNode(int parentid, DataTable dt, string blank, ref DataTable dt2)
??????? {
??????????? DataRow[] drs = dt.Select("ParentID= " + parentid);

??????????? int i = 1;
??????????? foreach (DataRow r in drs)
??????????? {
??????????????? string text = blank;
??????????????? string blank2 = blank;
??????????????? if (drs.Length == i)
??????????????? {
??????????????????? text += "└&nbsp;";
??????????????????? blank2 += "&nbsp;&nbsp;&nbsp;";
??????????????? }
??????????????? else
??????????????? {
??????????????????? text += "├&nbsp;";
??????????????????? blank2 += "│&nbsp;&nbsp;";
??????????????? }
??????????????? string nodeid = r["ClassId"].ToString();
??????????????? text += r["ClassDesc"].ToString();
??????????????? r["ClassDesc"] = HttpUtility.HtmlDecode(text);
??????????????? dt2.Rows.Add(r.ItemArray);
??????????????? //this.dropParent.Items.Add(new ListItem(HttpUtility.HtmlDecode(text), nodeid));
??????????????? int sonparentid = int.Parse(nodeid);
??????????????? BindNode(sonparentid, dt, blank2, ref dt2);
??????????????? i++;
??????????? }
??????? }
??????? #endregion

原文地址:http://www.3sfield.com/content.php?id=484