.Net中實現(xiàn)無限分類的2個例子
以前總想著搞這個無限分類,今天終于得空好好的看了下,發(fā)現(xiàn)實現(xiàn)的原理還是很簡單的,數(shù)據(jù)結(jié)構(gòu)上,用兩列(分類編號,上級編號)就可以實現(xiàn),可是為了聯(lián)合查詢的方便,一般都再增加一列(深度),在這個實例里,我只用了兩列,剩下的無非就是遞歸著對TreeView進行數(shù)據(jù)綁定而已~~。
public partial class _Default : System.Web.UI.Page
{
BIL bil = new BIL();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind_tree("0",null);
}
}
protected void bind_tree(string ChildNode,TreeNode tn)
{
DataTable dt = bil.GetByClassPre(ChildNode).Tables[0];
foreach (DataRow dr in dt.Rows)
{
TreeNode Node = new TreeNode();
if (tn==null)
{
//根
Node.Text = dr["ClassName"].ToString();
this.TreeView1.Nodes.Add(Node);
bind_tree(dr["ClassId"].ToString(), Node);
}
else
{
//當(dāng)前節(jié)點的子節(jié)點
Node.Text = dr["ClassName"].ToString();
tn.ChildNodes.Add(Node);
bind_tree(dr["ClassId"].ToString(),Node);
}
}
}
}
上次寫了使用TreeView控件進行無限分類綁定的方法,這回再寫個通用性更好的~~嘿嘿 綁定DropDownList~~思想跟上篇日志很接近,也是使用遞歸,當(dāng)然,網(wǎng)絡(luò)上還有很多人給數(shù)據(jù)庫增加了一個“Depth(深度)”的字段,這樣進行綁定的時候還可以更簡單些哈~~當(dāng)然,沒有必要的就不加了,還是遞歸使用起來簡單些哈~~不多說了,上代碼哈:
protected void bind_droplist(string ChildNode, string tmp)
{
DataTable dt = bil.GetByClassPre(ChildNode).Tables[0];
foreach (DataRow dr in dt.Rows)
{
if (dr["ClassPre"].ToString()=="0")
{
//如果是根節(jié)點
tmp = "";
DropDownList1.Items.Add(dr["ClassName"].ToString());
bind_droplist(dr["ClassId"].ToString(), tmp + " ");
}
else
{
//不是根節(jié)點
DropDownList1.Items.Add( tmp+"|-" + dr["ClassName"].ToString());
bind_droplist(dr["ClassId"].ToString(), tmp + " ");
}
}
}
相關(guān)文章
LINQ操作數(shù)組代碼(交集,并集,差集,最值,平均,去重復(fù))
數(shù)組是大學(xué)里經(jīng)常拿來做算法練習(xí)的對象。一些經(jīng)典算法非常有價值,考試、裝逼、面試都十分有用。但現(xiàn)在是效率時代,編程講究生產(chǎn)效率,利用LINQ,可以讓程序猿避免寫一些基本算法,把精力花在業(yè)務(wù)處理上2012-02-02
ASP.NET MVC中HtmlHelper控件7個大類中各個控件使用詳解
本文主要介紹HtmlHelper類控件的使用方法,給初涉MVC的朋友一些幫助,有需要的朋友可以參考一下。2016-03-03
EFCore 通過實體Model生成創(chuàng)建SQL Server數(shù)據(jù)庫表腳本
這篇文章主要介紹了EFCore 通過實體Model生成創(chuàng)建SQL Server數(shù)據(jù)庫表腳本的示例,幫助大家更好的理解和學(xué)習(xí)使用.net框架,感興趣的朋友可以了解下2021-03-03
.Net?Core?NPOI?導(dǎo)出多級表頭的實現(xiàn)代碼
這篇文章介紹了如何使用.NetCore和NPOI庫導(dǎo)出多級表頭的表格數(shù)據(jù),并附上了源碼,感興趣的朋友一起看看吧2024-11-11
ASP.NET設(shè)計網(wǎng)絡(luò)硬盤之上傳文件實現(xiàn)代碼
用戶最終是要和文件打交道的,文件夾僅僅是用來方便管理的。文件的上傳和下載也就成為“網(wǎng)絡(luò)硬盤”功能設(shè)計中的重要一環(huán)2012-10-10

