国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

Net中實現(xiàn)無限分類的2 個例子

2019-11-02 15:06:54
字體:
供稿:網(wǎng)友

 以前總想著搞這個無限分類,今天終于得空好好的看了下,發(fā)現(xiàn)實現(xiàn)的原理還是很簡單的,數(shù)據(jù)結(jié)構(gòu)上,用兩列(分類編號,上級編號)就可以實現(xiàn),可是為了聯(lián)合查詢的方便,一般都再增加一列(深度),在這個實例里,我只用了兩列,剩下的無非就是遞歸著對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é)點的子節(jié)點
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(ChildN
中國歷史故事[www.9-39.com/html/china/]
ode).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 + " ");
}
}
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄平县| 柏乡县| 阿拉善左旗| 金塔县| 台湾省| 星子县| 赤城县| 肇州县| 平原县| 瑞丽市| 泾川县| 大同县| 西峡县| 华宁县| 南昌县| 雅江县| 遵义市| 庐江县| 乾安县| 镇宁| 台山市| 沈丘县| 循化| 醴陵市| 临海市| 陆良县| 壶关县| 鱼台县| 山西省| 原阳县| 安龙县| 鸡东县| 改则县| 云霄县| 东平县| 拉孜县| 大英县| 玛纳斯县| 芜湖县| 玉林市| 井陉县|