项目中,我们会经常用到多级栏目管理。如何自动生成多级栏目呢?数据库:所有栏目都在栏目表中,表的主键为id,还有一个指示该栏目的上级栏目的关键字c_fatherid。下面以treeview为例。
<span style="white-space:pre"> </span>private void Form1_Load(object sender, EventArgs e)
{
TreeNode tn = new TreeNode();
SetTreeView(tn,0);
}
private void SetTreeView(TreeNode tn, int fid)
{
DataTable dt = DbHelper.getDataTable("select * from tb1 where c_fatherid=" + fid);
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode tn1 = new TreeNode(dt.Rows[i]["c_name"].ToString());
if (fid == 0)//该栏目为一级栏目
{
treeView1.Nodes.Add(tn1);
}
else
{
tn.Nodes.Add(tn1);
}
if (Convert.ToInt32(DbHelper.executeScalar("select count(*) from tb1 where c_fatherid=" + Convert.ToInt32(dt.Rows[i]["id"]))) > 0)
{
SetTreeView(tn1, Convert.ToInt32(dt.Rows[i]["id"]));
}
}
}