110,537
社区成员
发帖
与我相关
我的任务
分享
TreeNode[] treeNodes = new TreeNode[2];
treeNodes[0] = new TreeNode();
treeNodes[0].Text = "aa";
treeNodes[1] = new TreeNode();
treeNodes[1].Text = "bb";
List<string> alist = new List<string>();
alist.Add("电视机");
alist.Add("洗衣机");
foreach (string a in alist)
{
treeNodes[0].Nodes.Add(a);
}
List<string> blist = new List<string>();
blist.Add("茶具");
blist.Add("洗剧");
foreach (string b in blist)
{
treeNodes[1].Nodes.Add(b);
}
for (int i = 0; i < treeNodes.Length; i++)
{
treeView1.Nodes.Add(treeNodes[i]);
}
private void button1_Click(object sender, EventArgs e)
{
// 父, 子, 其他
// aa, 电视机, ....
// aa, 洗衣机, ....
// bb, 脸盆 , ....
// bb, 茶杯 , ....
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("pid");
dt.Rows.Add("1", "aa", "0");
dt.Rows.Add("2", "bb", "0");
dt.Rows.Add("3", "电视机", "1");
dt.Rows.Add("4", "洗衣机", "1");
dt.Rows.Add("5", "脸盆", "2");
dt.Rows.Add("6", "茶杯", "2");
// 以上部分 直接从数据库中select 然后 Fill 到 DataTable。
nodes(this.treeView1.Nodes, dt, 0);
}
private void nodes(TreeNodeCollection tnode, DataTable dt, int id)
{
DataView dview = new DataView(dt); //创建视图 ,因为只有一张表
dview.RowFilter = "[pid]=" + id + ""; //视图的好处,在于能方便筛选数据
foreach (DataRowView row in dview) //显示每个节点的标题,递归!
{
TreeNode node = new TreeNode();
node.Text = row["name"].ToString();
tnode.Add(node);
nodes(node.Nodes, dt, Int32.Parse(row["id"].ToString()));
}
}