| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3611 人关注过本帖
标题:如何获取 VS2005 中 TreeView树形结构 选定节点的“文本”路径???
只看楼主 加入收藏
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
结帖率:100%
收藏
 问题点数:0 回复次数:25 
如何获取 VS2005 中 TreeView树形结构 选定节点的“文本”路径???
小弟想 获取TreeView树形结构 选定节点 的“文本”路径,作为文件的存放路径。但 TreeView1.SelectedNode.ValuePath 只能获取 选定节点的“值路径”,不知如何获取TreeView树形结构 选定节点的“文本”路径。


下图中,当选中一个节点“红宝石书城”后,第三个标签框内显示的内容是:this.Label3.Text = TreeView1.SelectedNode.ValuePath; 即 东建集团公司/101/101.01/101.01.03 ,但我想获取的内容是“东建集团公司/房屋开发公司/东方广场/红宝石书城”,但不知如何写代码,请大家支招,谢谢!
图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2006-9-11 15:54:16编辑过]

搜索更多相关主题的帖子: 文本 节点 TreeView 树形 路径 
2006-09-11 15:45
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
FullPath

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-11 16:37
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

用 FullPath 出错,请斑竹指教,谢谢!我用的是C#
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
this.Label1.Text = TreeView1.SelectedNode.Text;
this.Label2.Text = Convert.ToString(TreeView1.SelectedNode.Depth);
//this.Label3.Text = TreeView1.SelectedNode.ValuePath;
this.Label3.Text = TreeView1.SelectedNode.FullPath;
this.Label4.Text = TreeView1.SelectedNode.Value;
//创建一个连接

SqlConnection conn2 = new SqlConnection("data source=(local);database=aaa;user=sa; password=8888");

//创建一个DataSet(数据集)
DataSet ds2 = new DataSet();

//创建一个DataAdapter
SqlDataAdapter da2 = new SqlDataAdapter("select * from subject where CLASS=2 and left(SUB_ID,3)=101", conn2);
//填充DataSet ds
da2.Fill(ds2, "subject");

////显示,绑定
//dg.DataSource = ds;
//dg.DataMember = "subject";
//dg.DataBind();

}

this.Label3.Text = TreeView1.SelectedNode.FullPath;
出错:错误 2 “System.Web.UI.WebControls.TreeNode”并不包含“FullPath”的定义


我是2.0超级菜鸟,请多多教导!
2006-09-11 17:49
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
Web.UI.WebControls的?

沒裝2005 沒web的

不好意思

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-11 17:51
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
是用 VS2005 自带的 TreeView控件。

我是2.0超级菜鸟,请多多教导!
2006-09-11 17:53
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
继续求助,谢谢大家!

我是2.0超级菜鸟,请多多教导!
2006-09-12 09:49
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

用递归也不行,请大家支招,谢谢!
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string nText = TreeView1.SelectedNode.Text;
TreeNode tn = TreeView1.SelectedNode;
this.Label3.Text = GetPath(nText, tn);
this.Label1.Text = TreeView1.SelectedNode.Text;
this.Label2.Text = Convert.ToString(TreeView1.SelectedNode.Depth);
//this.Label3.Text = TreeView1.SelectedNode.ValuePath;
//this.Label3.Text = TreeView1.SelectedNode.ValuePath;
this.Label4.Text = TreeView1.SelectedNode.Value;
//创建一个连接

SqlConnection conn2 = new SqlConnection("data source=(local);database=aaa;user=sa; password=8888");

//创建一个DataSet(数据集)
DataSet ds2 = new DataSet();

//创建一个DataAdapter
SqlDataAdapter da2 = new SqlDataAdapter("select * from subject where CLASS=2 and left(SUB_ID,3)=101", conn2);
//填充DataSet ds
da2.Fill(ds2, "subject");

////显示,绑定
//dg.DataSource = ds;
//dg.DataMember = "subject";
//dg.DataBind();

}
protected string GetPath(string lText ,TreeNode tn)
{
if (tn.Text != "东建集团公司")
{
lText += "/"+ TreeView1.SelectedNode.Parent.Text;
GetPath(lText, TreeView1.SelectedNode.Parent);
}
return lText;
}


我是2.0超级菜鸟,请多多教导!
2006-09-12 11:58
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

昨天晚上我认真研究了 flyin2006 提供的代码,发现出现无限循环或无限递归的错误的原因可能是:无法返到当前选定节点的父节点的再上一级或上几级的父节点。我试着将 GetPath(lText,TreeView.SelectedNode.Parent) 改成了 GetPath(lText, tn.Parent); 就解决了出现无限循环或无限递归的错误。
但是,仍然无法得到 this.Label3.Text=“**集团公司/房屋开发公司/东方广场/红宝石书城”。经逐语句,当执行到 return lText; 时, 变量 lText 的值是 “**集团公司/房屋开发公司/东方广场/红宝石书城”,但 执行 return lText; 之后,变量 lText 的值变成了 “东方广场/红宝石书城”。当第一次执行完 return lText; 之后,跳到 GetPath(lText, tn.Parent); ,执行完 GetPath(lText, tn.Parent); 后,跳到 return lText;,如此反复两次。

请大家帮忙解决这个问题,谢谢大家!

this.Label3.Text = GetPath(TreeView1.SelectedNode.Text, TreeView1.SelectedNode);

protected string GetPath(string lText, TreeNode tn)
{
if (tn.Text != "东建集团公司")
{
lText = tn.Parent.Text + "/" + lText;
GetPath(lText, tn.Parent);
}
return lText;
}


我是2.0超级菜鸟,请多多教导!
2006-09-13 10:19
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
再次求助!谢谢大家!

我是2.0超级菜鸟,请多多教导!
2006-09-13 17:16
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

我是2.0超级菜鸟,请多多教导!
2006-09-17 21:28
快速回复:如何获取 VS2005 中 TreeView树形结构 选定节点的“文本”路径???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028403 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved