设为首页 加入收藏
首 页 企业简介 项目案例 软件定制 行业软件 解决方案 企业资讯 服务专区 客服中心
服务项目
案例展示 更多 >>
·维修管理系统 2012/5/14
·园区游客服务管理系统 2012/5/10
·党风廉政信息公开平台 2012/5/10
·职工提案系统软件 2012/1/11
·电信客户资源管理系统软… 2012/1/11
·洗衣收银软件 2012/1/11
·触摸查询系统软件 2012/1/11
·西安来电弹屏软件 2011/8/31
·西安软件公司仓库管理软… 2011/6/9
·会员管理系统 2011/6/9
联系人:李先生
电  话:029-87878512
手  机:13468700578
地  址:西安市丝路国际创意梦工厂4号
在线咨询:  762176615
Email:junsoft@126.com
 
当前的位置 >> 返回首页 >> 解决方案
软件公司讲解:树形结构深入分析
发布者:西安软件公司   发布时间:2012/8/28   阅读:15次

开始,从数据中读取数据这个数据就不用说了吧,虽然是学C#的,不过公司要求要用VB来编写,代码附上:
Public Sub BindTree(ByVal tnAs TreeNode)
Dim strAs String = tn.Tag(1)
DimmyConn As SqlConnection = db.getConnection() '得到数据库的链接
Dimtable As DataTable = db.GetSonNode(str, myConn)'由数据库帮助类得到子节点
Iftable.Rows.Count = 0 Then
tn.ImageIndex = 0
Return
End If
Forindex As Integer= 0 To table.Rows.Count - 1
Dimnode As NewTreeNode
node.Text = table.Rows(index)("编码").ToString()
node.Name = table.Rows(index)("序号").ToString()
node.Tag = table.Rows(index)
node.ImageIndex = 1
tn.Nodes.Add(node)
Iftable.Rows(index)("父编码").ToString().Length = 0 Then
Return
Else
BindTree(node)
EndIf
Next
End Sub
这是在下编写的递归算法,当然这是一个很常见的递归算法,相信大家都很容易理解,也易懂,不过如果各位有更好的想法的话,不如一起交流交流也不错啊,呵呵···就当抛砖引玉了。
不过此次对TreeView的操作里面,这当然不是关键,有一个关键的地方就是开始经理和我说的那个,如何去实现凡是带子节点的节点和没有子节点的节点的图标不一致的问题。
开始,我只是单纯的初始化设置了node.ImageIndex为1或者为0,不过后来发现,在点击控件的时候,你看不到ImageIndex的改变,却在控件中的显示中悄悄的发生了变化,开始有点不懂,后来才知道,选择的节点必须经过另一项设置之后才会使其保持不变,就是在节点选择后的事件中添加以下这样一条语句:TreeView1.SelectedNode.SelectedImageIndex = 1,这样才能保持图标的不变。
关键点二:我们只知道遍历循环整个树,就是从数据库中读取整个数据表,然后进行遍历。那么如何在已有的树形结构中对某一个节点进行遍历得到其所有子节点呢?注意是所有子节点,所以在此又要写一个遍历算法。(当然只是我只想到了这样一个办法,肯定有更优解,代码如下:)
If tnode.Nodes.Count = 0 Then
Return
End If
Dim table AsDataTable
Dim str AsString = tnode.Tag(1)
Dim myConn AsSqlConnection = db.getConnection()
table = db.GetSonNode(str, myConn)
mydataset.Tables.Add(table)
For i AsInteger = 0 Totnode.Nodes.Count - 1
GetAllSonNode(tnode.Nodes(i))
Next

网站首页 | 关于我们 | 售后服务 | 网站地图 | 查看留言 | 在线留言 | 客服中心
© 版权所有:西安润宇软件科技有限公司 
公司地址:西安市浐灞生态区欧亚大道3639号丝路国际创意梦工厂4号 联系电话:029-87878512 手机:13468700578 联系人:李先生
Copyright ® 2011-2020 Xbwbw.com Inc. All Rights Reserved 
技术支持:西安润宇软件科技有限公司  陕ICP备11000720号-2