分享

C# TreeView控件动态绑定数据库

 goodwangLib 2014-09-13

想要形成这种效果的话,首先在数据里面建一张表

create table treedata (id number, context varchar2(50), parentid number);

id:当前的id,context当前节点的值文本,parentid代表当前节点的父节点id

insert into treedata values(1, '所有部门', 0);

insert into treedata values(2, '人事部', 1);

insert into treedata values(3, '财务部', 1);

insert into treedata values(4, '生产部', 1);

insert into treedata values(5, '车间一', 4);

insert into treedata values(6, '车间二', 4);

insert into treedata values(7, '车间三', 4);

insert into treedata values(8, '商务部', 1);


再用递归根据数据库查询的值动态绑定treeView


  1. public void AddTree(int ParentID, TreeNode pNode)  
  2.         {  
  3.             string sql = "select id, context, parentid from treedata";  
  4.             DataSet ds = OracleHelper.ExecuteDataset(OracleHelper.Con, CommandType.Text, sql, null);  
  5.             TreeNode tn1 = new TreeNode();  
  6.             DataView dvTree = new DataView(ds.Tables[0]);  
  7.             //过滤ParentID,得到当前的所有子节点  
  8.             dvTree.RowFilter = "[PARENTID] = " + ParentID;  
  9.             foreach (DataRowView Row in dvTree)  
  10.             {  
  11.                 if (pNode == null)  
  12.                 {    //'?添加根节点  
  13.   
  14.                     tn1.Text = Row["ConText"].ToString();  
  15.                     treeView1.Nodes.Add(tn1);  
  16.                     tn1.ExpandAll();  
  17.                     AddTree(Int32.Parse(Row["ID"].ToString()), tn1);    //再次递归  
  18.                 }  
  19.                 else  
  20.                 {   //添加当前节点的子节点  
  21.                     TreeNode tn2 = new TreeNode();  
  22.                     tn2.Text = Row["ConText"].ToString();  
  23.                     pNode.Nodes.Add(tn2);  
  24.                     tn1.ExpandAll();  
  25.                     AddTree(Int32.Parse(Row["ID"].ToString()), tn2);    //再次递归  
  26.                 }  
  27.             }  
  28.             treeView1.ExpandAll();  
  29.         }  

应用:

  1. private void 人员资料管理_Load(object sender, EventArgs e)  
  2.         {  
  3.             AddTree(0, (TreeNode)null);  
  4.             treeView1.ExpandAll();//默认展开所有节点  
  5.             this.toolStripComboBox1.SelectedIndex = 0;  
  6.         }  

就可以了。。。。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多