首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#实现组织构的树型结构,该怎么解决

2012-03-24 
C#实现组织构的树型结构想做集团组织结构的树型结构,表结构如下:table1公司id公司名称所属集团idtable2部

C#实现组织构的树型结构
想做集团组织结构的树型结构,
表结构如下:
table1
公司id 公司名称 所属集团id
table2
部门id 部门名称 所属公司id
table3
员工id 员工姓名 所属部门id 

想得到结构是
集团
  ---1公司
  -----财务部
  ---员工1
  -----销售部
  ---员工2
  -----2公司
  ------财务部
  ---员工3
  -------采购部
  ---员工4

请帮忙
谢谢


[解决办法]
可以参考下面代码,读取数据到treeview中

C# code
private void frmMain_Load(object sender, EventArgs e)        {            TreeMenu treeMenu = new TreeMenu();            List<TreeMenuInfo> cdb = treeMenu.GetTopMenu();            foreach (TreeMenuInfo info in cdb)            {                TreeNode node = new TreeNode(info.Cdmc);                node.Name = info.Cdid;                node.Tag = info.Cddyb;                DataSet ds = CommClass.GetDataSet(info.Cddyb, "fjgbh", "0");                foreach (DataRow row in ds.Tables[0].Rows)                {                    node = CreateChildNode(node, row, info.Cddyb, "jgmc", "jgbh", "org", "fjgbh");                }                this.tvwMenu.Nodes.Add(node);            }        }        private TreeNode CreateChildNode(TreeNode node, DataRow row, string tableName, string mcField, string bhField, string tagValue, string fbhField)        {            TreeNode node2 = new TreeNode(row[mcField].ToString().Trim());            node2.Name = row[bhField].ToString().Trim();            node2.Tag = tagValue;            DataSet ds = CommClass.GetDataSet(tableName, fbhField, row[bhField].ToString().Trim());            foreach (DataRow row2 in ds.Tables[0].Rows)            {                node2 = CreateChildNode(node2, row2, tableName, mcField, bhField, tagValue, fbhField);            }            node.Nodes.Add(node2);            return node;        }
[解决办法]
--集体
--公司
--部门
--员工
[解决办法]
现在的一般解决方案是用js的树形控件+服务器端生成xml或者json的数据。
js的树形控件有很多,比如ext的tree组件,jquery,dhtmlxtree,随便找一个照着例子做。
数据库要维持这个树形结构,一般要包括id,upid,其他字段自定义。
[解决办法]
看看这个,跟你的需求完全类似:
 
WinForm中TreeView数据绑定

热点排行