在C# winform 中的treeview 选中节点,获取其在数据库中的字段ID
在C#winform中的treeview选中节点,获取其在数据库中的字段ID。例如:公司部门结构中,有管理部、营业部、技术部、IT部,部门里有小组:管理部中有行政组、文控...
在C# winform 中的treeview 选中节点,获取其在数据库中的字段ID。
例如:公司部门结构中,有管理部、营业部、技术部、IT部,部门里有小组:管理部中有行政组、文控组,技术部中有设计组、文控组等等,问题是在treeview中this.treeview.selectnode.text 有同样的,如选择了节点‘文控组’但它的父ID是哪一个啊?或treeID怎么获取呢?
数据库表设计:
treeID name fatherID
1 管理部 0
2 技术部 0
3 文控组 1
4 文控组 2
5 行政组 1 展开
例如:公司部门结构中,有管理部、营业部、技术部、IT部,部门里有小组:管理部中有行政组、文控组,技术部中有设计组、文控组等等,问题是在treeview中this.treeview.selectnode.text 有同样的,如选择了节点‘文控组’但它的父ID是哪一个啊?或treeID怎么获取呢?
数据库表设计:
treeID name fatherID
1 管理部 0
2 技术部 0
3 文控组 1
4 文控组 2
5 行政组 1 展开
2个回答
展开全部
绑定时为节点添加Tag属性值
treeView1.Nodes.Add("管理部").Tag = treeID;
获取treeID
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode node=treeView1.SelectedNode;
treeID类型 treeID = (treeID类型) node.Tag;
}
treeView1.Nodes.Add("管理部").Tag = treeID;
获取treeID
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode node=treeView1.SelectedNode;
treeID类型 treeID = (treeID类型) node.Tag;
}
追问
还是不会做。我用递归方法邦定数据的:(部分代码如下)
//邦定treeview
public void BindTreeView()
{
。。。
}
//子节点递归循环
public void TV_Addchildnodes(TreeNode node, int nodeID)
{
。。。
TV_Addchildnodes(tn, id);
node.Nodes.Add(tn);
}
你写的Add("管理部")、treeID类型都是我数据库里的字段,怎么可以写在CS代码里呢?有详细的代码参考一下不???
追答
。。
从数据库取得数据,将要显示的字段值toString()下,作为参数传递给ADD方法。。。要取得tag值时作下类型转换,,,比如,你上面的id是整型的,取出来tag值是OBJECT,所以的强制转换什么的。。。。
自己多动脑思考下,,,控件里面都有很多属性和方法,,可以试着去熟悉下控件的方法执行顺序、属性的意义什么的。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你在绑定dataSource的时候去绑定他的显示的值和实际的值即:displaymember 和valuemeber的值 那么这个时候在绑定以后每个值都有一个valuemeber 你就可以通过这个valuemeber得到
追问
怎么邦定啊?我用递归的方法来实现展示数据,displaymember 和valuemeber这两个参数还不知道怎么用。
追答
就是你把从数据库里面的资料绑定到集合里面 然后把集合给下拉框的datasource就可以了 然后再去绑定displaymember 和valuemeber两个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询