标题:代码实现使TreeView控件某个节点处于选定状态的方法遇到的问题
只看楼主
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
结帖率:100%
 问题点数:0 回复次数:4 
代码实现使TreeView控件某个节点处于选定状态的方法遇到的问题

以下的代码想实现:使TreeView控件某个节点处于选定状态。FondNode方法有两个参数,一个是传递节点对象的,另外一个参数是传递节点的值(节点的值是唯一的)的。
运行到 if (tn.Value == MyCount) 时遇到如下错误提示:运算符“==”无法应用于“string”和“int”类型的操作数 。
请教大家应如何解决这个问题啊?谢谢!

protected void Page_Load(object sender, EventArgs e)
{
this.FondNode(TreeView1.Nodes,56);
this.FondNode(TreeView2.Nodes,23);
}

//查找节点
private void FondNode(TreeNodeCollection tnc,int MyCount)
{
foreach (TreeNode tn in tnc)
{
if (tn.Value == MyCount)
{
tn.Select();
this.ExpandNode(tn);
break;
}
else
this.FondNode(tn.ChildNodes,MyCount);
}
}

//打开节点
private void ExpandNode(TreeNode tn)
{
if (tn.Depth != 0)
{
this.ExpandNode(tn.Parent);
tn.Expand();
}
else
tn.Expand();
}

[此贴子已经被作者于2007-4-16 14:29:27编辑过]

搜索更多相关主题的帖子: TreeView控件 节点 状态 代码 FondNode 
2007-04-16 14:28
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 

很明显 tn.value是是string类型的

正常情况下 系统会自动进行强制类型转换 如果可以的话. 但是如果tn.value是非数字的字符串 就会报错了
FondNode里 在 Foreach循环里面
在比较之前先判断一下节点的值是不是数字


2007-04-16 17:14
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
得分:0 
节点的值 肯定 是数字,因为 节点值就是 数据表的“ID”字段(主键,int 数据类型),而且是唯一的。在这种情况下,如何解决这个问题啊?

我是2.0超级菜鸟,请多多教导!
2007-04-16 17:29
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
那在比较之前对 tn.value进行类型转换成数字试试

2007-04-16 17:36
sean88
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-3-27
得分:0 
以下是引用foshan在2007-4-16 17:29:06的发言:
节点的值 肯定 是数字,因为 节点值就是 数据表的“ID”字段(主键,int 数据类型),而且是唯一的。在这种情况下,如何解决这个问题啊?

经过ID列绑定,你所看到的节点值是数字,但是treeNode.value取值是字符串类型的.和数字类型肯定不能相等呀.


Knowledge is infinite.
2007-04-17 09:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-132261-1-1.html




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

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