dropdownlist显示简单两层分类代码
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
//提取datatable
DataTable myDT = Business.Category.GetCategories().Tables[0];
GetCategory(myDT,0);
}
}
private void GetCategory(DataTable dt, int id)
{
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID =" + id.ToString();
foreach(DataRowView drv in dv)
{
string blank="";
if(id!=0)
{
blank+="--";
}
ListItem item=new ListItem();
item.Text=blank + drv["Name"].ToString();
item.Value=drv["CategoryID"].ToString();
this.Categories.Items.Add(item);
GetCategory(dt,Convert.ToInt32(drv["CategoryID"]));
}
}
数据库最简单有三个字段 id ParentID Name;{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
//提取datatable
DataTable myDT = Business.Category.GetCategories().Tables[0];
GetCategory(myDT,0);
}
}
private void GetCategory(DataTable dt, int id)
{
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID =" + id.ToString();
foreach(DataRowView drv in dv)
{
string blank="";
if(id!=0)
{
blank+="--";
}
ListItem item=new ListItem();
item.Text=blank + drv["Name"].ToString();
item.Value=drv["CategoryID"].ToString();
this.Categories.Items.Add(item);
GetCategory(dt,Convert.ToInt32(drv["CategoryID"]));
}
}
其实也可以实现一个无限分类,但是用下拉框显示上有点问题。
所以改做成一个两层分类。

