有時候,分類做的是無限級分類,(如果你還不會,請Google一下),取分類的時候就是個問題,怎麼才能取出來呢?看代碼:
private void BindDrpClass()
{
//獲得所有資料列表
DataTable dt = mh.returnds_bysting("select * from TB_SupplyType ").Tables [0];
ddl . Items.Clear();
ddl.Items.Add(new ListItem("選擇類別", "0"));
DataRow[] drs = dt.Select("s_Sid= " + 0);
foreach (DataRow dr in drs)
{
string classid = dr["s_Id"].ToString();
string classname = dr["s_Title"].ToString();
//頂級分類顯示形式
classname = "" + classname;
ddl.Items.Add(new ListItem(classname, classid));
int sonparentid = int.Parse(classid);
string blank = " ";
//遞迴子分類方法
BindNode(sonparentid, dt, blank);
}
ddl.DataBind();
}
private void BindNode(int parentid, DataTable dt, string blank)
{
DataRow[] drs = dt.Select("s_Sid= " + parentid);
foreach (DataRow dr in drs)
{
string classid = dr["s_Id"].ToString();
string classname = dr["s_Title"].ToString();
classname = blank + classname;
ddl.Items.Add(new ListItem(classname, classid));
int sonparentid = int.Parse(classid);
string blank2 = blank + "-";
BindNode(sonparentid, dt, blank2);
}
}
雖然能實現無限級分類,但是樣式有點遜色,有興趣的朋友可以加個css 控制一下