treeview问题 ~!!!!大家来HELP ME 谢谢

qqws 2003-07-26 09:44:45
看了很多TREEVIEW的帖子跟资料,还是没弄明白怎么动态加载数据,请高手指教下,请把过程给详细点,我刚开始学的,谢谢大家了,请关照小弟 分不够可以加

结构:
人力资源部
人员名字
财务部
人员名字
后勤部
人员名字
大楷就这样的个模式,数据试在数据库里面的,麻烦把数据库结构也告诉我,再次感谢了,急,
...全文
159 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpusaddam 2004-01-08
  • 打赏
  • 举报
回复
http://search.csdn.net/expert/topic/52/5202/2003/3/13/1525202.htm
jeall 2004-01-07
  • 打赏
  • 举报
回复
Thanks! jeall@163.com
qqws 2003-07-27
  • 打赏
  • 举报
回复
?///???
qqws 2003-07-27
  • 打赏
  • 举报
回复
还是有问题啊,对了,还有个问题,我用DATAVIEW筛选了记录后,我怎么把筛选的记录副到一个字符串上去啊,
dahuzizyd 2003-07-27
  • 打赏
  • 举报
回复
你直接拷贝就可以用了啊
qqws 2003-07-27
  • 打赏
  • 举报
回复
大家再给点详细的例子把,还是不太明白
qqws 2003-07-27
  • 打赏
  • 举报
回复
sheng.wan@tom.com
雪狼1234567 2003-07-26
  • 打赏
  • 举报
回复
给我mail发一个给你
dahuzizyd 2003-07-26
  • 打赏
  • 举报
回复
在web下,我是使用一个全局静态变量来保存selectedIndex
string static CurrentNodeIndex ;
CurrentNodeIndex = TreeView1.SelectedNodeIndex;
另:上面的根据selectedIndex来遍历树查找节点,错了,应该是SelectNodeIndex
dahuzizyd 2003-07-26
  • 打赏
  • 举报
回复
我的这个和你的不太一样,人员是在另一个表里的,向你的直接象下面的结构,把人员的ParentID设为他的父节点的ID就可以了:
部门信息表:
DepID ParentID Name
100001 0 技术部
100002 0 财务部
100003 100001 编码组
100004 100001 测试组

建表的过程:需要先声明一个 DataView dv
public void InitTree(TreeNodeCollection Nds,string parentId,DataSet ds,string TableName)
{ //从根节点开始递归调用显示子树
dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables[TableName];
dv.RowFilter="ParentId=" + parentId ;
foreach(DataRowView drv in dv)
{ //递归算法从这里开始。
tmpNd=new TreeNode();
tmpNd.Tag =drv[0].ToString(); //节点ID
tmpNd.Text=drv[2].ToString(); //节点名称
Nds.Add(tmpNd);
intId=drv[1].ToString(); //节点的父节点
InitTree(tmpNd.Nodes,tmpNd.Tag.ToString(),ds,TableName);
}
}
四个参数:TreeNodeCollection Nds就是你要生成的树,例如:treeView1
ParentID 父节点名称,初始时为0 后面两个我就不说了。
另外,在添加节点时判断是否已有相同名称的节点存在可以用递归:
public void GetAllNodeText(TreeNodeCollection tnc,string txt)
{
foreach (TreeNode node in tnc)
{
if( node.Nodes.Count != 0 )
GetAllNodeText(node.Nodes,txt);
}
}
我的添加节点时只判断同级节点是否有重名的:
public bool AddNode(TreeNode SelNode,string ID,string txt)
{
int exist = 0;
TreeNode NewNode = new TreeNode();
NewNode.Text = txt;
NewNode.Tag = ID;
foreach (TreeNode tnc in SelNode.Nodes )
{
if (tnc.Text == txt)
{
exist = 1;
return false;
}

}
if (exist != 1)
{
SelNode.Nodes.Add(NewNode);
return true;
}
else
{
return false;
}
}
删除就很简单了
public bool DeleteNode(TreeNode DelNode)
{
if ( DelNode.Nodes.Count == 0)
{
DelNode.Remove();
return true;
}
else
{
return true;
}
}

以上是winform下的,web应用下的你要先装上web下的treeView控件,实现方法查不多,主要是类型不一样,而且webTreeView1在添加和删除节点时,由于没有selectedNode的概念,所以要根据selectedIndex来遍历树查找节点,然后添加或删除,代码太多,就不贴上来了。
这些你可以作在一个类下,在前台界面引用,然后使用里面的方法。
qqws 2003-07-26
  • 打赏
  • 举报
回复
怎么没人回贴啊

111,132

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧