ID dirname parentid
1 供应链 0
2 基本信息 0
3 采购管理 1
4 工程管理 1
5 检验管理 1
6 库存管理 1
7 销售管理 1
8 目录 2
9 权限 2
10 用户 2
以上是表目录.要求用递归写一个TREE目录,我想破头,也不知道如何写,请帮忙呀.万分感谢.
1 供应链 0
2 基本信息 0
3 采购管理 1
4 工程管理 1
5 检验管理 1
6 库存管理 1
7 销售管理 1
8 目录 2
9 权限 2
10 用户 2
以上是表目录.要求用递归写一个TREE目录,我想破头,也不知道如何写,请帮忙呀.万分感谢.
解决方案 »
- 请问对字符数组应该如何作替换操作?
- for和foreach 的区别 帮解释下
- 求助:用户可以发送域内邮件,外部邮件发送失败,如何解决?谢谢!
- C#能否读取客户端控件(多选下拉列表)的value?------在线等待
- [提問]利用WMI,可以結束遠程機器中指定的進程嗎?
- “DM.DAL.DeviceBaseDAL”不会实现接口成员“DM.DAL.IDeviceDAL.AddOut(string, string, string, string, System.DateTime, string)”
- 工具栏图标不见了,不知道大家有没有遇到此情况?
- 多线程不能调用带参数的方法。怎么解决呀。救命呀大哥大姐门!
- 关于windowsxp的小问题
- 多个字符串增加内容
- 请问对象和函数 ,对象和过程的区别
- 急,急,oracle 修改多列语句怎么写???
"" 供应链
"" 基本信息
基本信息 目录
基本信息 权限
基本信息 用户
供应链 采购管理
供应链 工程管理
供应链 检验管理
供应链 库存管理
供应链 销售管理生成以上表,然然用treeview自动绑定就行了.
foreach (ParameterValues parm in parameterValues)
{
TreeNode node = new TreeNode(parm.ValueName);
node.Name = parm.ValueID.ToString();
node.Tag = parm.ParentValueID;
node.ImageIndex = 2;
node.SelectedImageIndex = 2;
hashNodes.Add(node.Name, node);
}
foreach (TreeNode node in hashNodes.Values)
{
if (node.Tag.ToString() == "0")
{ sortCustomerTreeView.Nodes[0].Nodes.Add(node);
}
else
{
TreeNode parent = (TreeNode)hashNodes[node.Tag.ToString()];
parent.ImageIndex = 0;
parent.SelectedImageIndex = 0;
if (parent != null)
{
parent.Nodes.Add(node);
}
else
{
throw new ArgumentException("节点的值" + Convert.ToString(node.Tag) + "不存在!");
}
}
}
nodeOne.Expand();
hashNodes.Clear();
} 也可以使用Dictionary
public void AddTree(int ParentID,TreeNode pNode)
{
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
foreach(DataRowView Row in dvTree)
{
if(pNode == null)
{ //'̀添加根节点
TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
else
{ //添加当前节点的子节点
TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
}
}
这个固然是写得很好,我怎么看不到出口,我感觉这个递归函数没有出口,好奇怪.
精略地看了一下,貌似VB6的代码,VB6与.NET的Treeview控件差异是比较大的,建议楼主看看这两个:
http://user.qzone.qq.com/66970551/blog/1251256069 http://user.qzone.qq.com/66970551/blog/1251252643
我自认为我自己还是收录和比较了几种方法的.
一个语句搞顶,如果是SQL就多写几个循环了。