Net中實(shí)現(xiàn)無限分類的2個例子_.Net教程
推薦:.net 實(shí)現(xiàn) URL重寫,偽靜態(tài)一,獲得Mircosoft URLRewriter.dll: 獲得Mircosoft URLRewriter.dll可以到http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx?mfr=true 下載完畢后,導(dǎo)入工程,我這里沒有對該工程做任何修改,保留了原來的重寫方式,然后直接在VS2
以前總想著搞這個無限分類,今天終于得空好好的看了下,發(fā)現(xiàn)實(shí)現(xiàn)的原理還是很簡單的,數(shù)據(jù)結(jié)構(gòu)上,用兩列(分類編號,上級編號)就可以實(shí)現(xiàn),可是為了聯(lián)合查詢的方便,一般都再增加一列(深度),在這個實(shí)例里,我只用了兩列,剩下的無非就是遞歸著對TreeView進(jìn)行數(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é)點(diǎn)的子節(jié)點(diǎn)
Node.Text = dr["ClassName"].ToString();
tn.ChildNodes.Add(Node);
bind_tree(dr["ClassId"].ToString(),Node);
}
}
}
}
上次寫了使用TreeView控件進(jìn)行無限分類綁定的方法,這回再寫個通用性更好的~~嘿嘿 綁定DropDownList~~思想跟上篇日志很接近,也是使用遞歸,當(dāng)然,網(wǎng)絡(luò)上還有很多人給數(shù)據(jù)庫增加了一個“Depth(深度)”的字段,這樣進(jìn)行綁定的時候還可以更簡單些哈~~當(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é)點(diǎn)
tmp = "";
DropDownList1.Items.Add(dr["ClassName"].ToString());
bind_droplist(dr["ClassId"].ToString(), tmp + " ");
}
else
{
//不是根節(jié)點(diǎn)
DropDownList1.Items.Add( tmp+"|-" + dr["ClassName"].ToString());
bind_droplist(dr["ClassId"].ToString(), tmp + " ");
}
}
}
分享:Asp.Net下通過切換CSS換皮膚換皮膚的方式有很多種,最簡單的通常就是切換頁面CSS,而CSS通常寫在外部CSS文件里。那么切換css其實(shí)就是更換html里的link href路徑。我在網(wǎng)上搜索了下。一般有兩種方式: 1,在頁面放一個holder控件。然后用編程方式把當(dāng)前用戶的風(fēng)格css link寫入頁面。 2,通過反射機(jī)制
- .net 實(shí)現(xiàn) URL重寫,偽靜態(tài)
- Asp.Net下通過切換CSS換皮膚
- ASP.NET DataTable去掉重復(fù)行的2種方法
- ASP.NET的(HttpModule,HttpHandler)
- 應(yīng)用Response.Write實(shí)現(xiàn)帶有進(jìn)度條的多文件上傳
- asp.net用cookie保存用戶密碼自動登錄
- asp.net如何將后臺c#數(shù)組傳給前臺js?
- VC++根據(jù)explorer.exe進(jìn)程檢測用戶是否已登錄
- ASP.NET從客戶端中檢測到有潛在危險(xiǎn)的request.form值的3種解決方法
- ASP.NET WebForm中%=%>與%#%>的區(qū)別
- 淺談ASP.NET中最簡單的自定義控件
- .net中webconfig 詳解
- 相關(guān)鏈接:
- 教程說明:
.Net教程-Net中實(shí)現(xiàn)無限分類的2個例子
。