有个递归加载树问题求解
数据结构如下:,第一次就把所有数据全查出来,后面递归的时候从datatable中取数据,效果应该大致如下,只是这里没有把用户管理的子节点加载进来.我试了很久,还是没成功,求解
[解决办法]
private void bindTreeView1() { string sql = "select * from TableName"; DataTable dt = db.ExecuteDataTable(sql, CommandType.Text, null); DataRow[] dr = dt.Select("last_parent=0"); for (int i = 0; i < dr.Length; i++) { TreeNode tn = new TreeNode(); tn.Text = dr[i]["last_text"].ToString(); tn.Tag = dr[i]["last_id"].ToString(); FillTree(tn, dt); treeView1.Nodes.Add(tn); } } private void FillTree(TreeNode node, DataTable dt) { DataRow[] drr = dt.Select("last_parent='" + node.Tag.ToString() + "'"); if (drr.Length > 0) { for (int i = 0; i < drr.Length; i++) { TreeNode tnn = new TreeNode(); tnn.Text = drr[i]["last_text"].ToString(); tnn.Tag = drr[i]["last_id"].ToString(); if (drr[i]["last_parent"].ToString() == node.Tag.ToString()) { FillTree(tnn, dt); } node.Nodes.Add(tnn); } } }