TreeView 数目统计,请教

ivanwfy 2014-09-04 08:14:38

如上图所示:默认,sky,sea节点下各有一篇文章,现在想实现:让每个节点显示所包含文章的总数,也就是默认(3),sky(2),sea(1),sea下面可能还有无限级的节点,如果它们也含有文章,也要统计到父节点中去,请问怎么统计并更改 (文章数目根据括号中的数值来算即可,每个节点自身的文章数我已经算好了)

简单来说就是:怎么把子节点括号中的数字,累计到父节点中
...全文
321 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ivanwfy 2014-09-05
  • 打赏
  • 举报
回复
真的非常感谢你花这么多时间关注,可能我之前的描述不够清楚,我想实现,每个有子节点的节点都汇总,像这样

office_2007 2014-09-05
  • 打赏
  • 举报
回复
效果如下; 子节点不管怎样多,它都能正确统计到父节点中去。
ivanwfy 2014-09-05
  • 打赏
  • 举报
回复
嗯,是我忘了引入Imports System.Linq ,感谢2位,辛苦了
office_2007 2014-09-05
  • 打赏
  • 举报
回复
您复制的代码不完整,请看看哪个漏掉的,MySub字过程后面怎么只有 End If 吗? 下面的部分哪儿去了吗? 声明的部分您漏掉了当然引发这类错误。请完整的复制代码。

 Private Sub ReadAllNode(ByVal Nodes1 As TreeNodeCollection)
        Dim Val1 As Integer
        Dim Str1 As String
        Dim Str2 As String
        Dim Str3 As String
        For Each S As TreeNode In Nodes1
            Str2 = S.Text
            Str3 = S.FullPath
 
            If S.Nodes.Count > 0 Then
                ReadAllNode(S.Nodes)

office_2007 2014-09-05
  • 打赏
  • 举报
回复
例如; 本节点11下有12,13,14这样三个同级节点,那么本节点11上显示39对吗
gxingmin 2014-09-05
  • 打赏
  • 举报
回复
此类的头部要加上 import System.Linq
gxingmin 2014-09-05
  • 打赏
  • 举报
回复
看错,以为是c#代码
office_2007 2014-09-05
  • 打赏
  • 举报
回复
我动手前有必要再次问,因为,又发生矛盾问题。 您的要求是 本节点下又有子节点时,本节点的数值不应该包含吧,只计算本节点下的合计到本节点上显示对吗? 我认为只有这样符合第三个父节点的算法了。
gxingmin 2014-09-05
  • 打赏
  • 举报
回复
List1.Sum(); Str2.Split('(');
ivanwfy 2014-09-05
  • 打赏
  • 举报
回复
非常感谢 office_2007 的代码,现在有2个小错误 再次麻烦您看下



是不是没有引入什么文件,我用的是vb2010
office_2007 2014-09-05
  • 打赏
  • 举报
回复
新发帖吧, 代码免费!
ivanwfy 2014-09-05
  • 打赏
  • 举报
回复
引用 10 楼 office_2007 的回复:
效果如下; 子节点不管怎样多,它都能正确统计到父节点中去。
有空再看下哦,大神
office_2007 2014-09-05
  • 打赏
  • 举报
回复
两个类各复制到它自己的位置就行了。

' 这个类复制到类模块内的
Public Class Class1
    Private List1 As New List(Of Integer)
    Private NextKey1 As Integer = 0
    Private TreeView1 As TreeView
    Public Property _TreeView1() As TreeView
        Get
            Return TreeView1
        End Get
        Set(ByVal value As TreeView)
            TreeView1 = value
        End Set
    End Property

    Public Sub MySub()
        Dim Sum1 As Integer = List1.Sum
        ' TreeView1.Nodes
        ReadAllNode(TreeView1.Nodes)
    End Sub

    Private Sub ReadAllNode(ByVal Nodes1 As TreeNodeCollection)
        Dim Val1 As Integer
        Dim Str1 As String
        Dim Str2 As String
        Dim Str3 As String
        For Each S As TreeNode In Nodes1
            Str2 = S.Text
            Str3 = S.FullPath

            If S.Nodes.Count > 0 Then
                ReadAllNode(S.Nodes)
            End If
            If String.Equals(Str2, Str3) Then
                Str1 = Str2.Split("(").ElementAt(0)
                TreeView1.Nodes.Item(NextKey1).Text = Str1 & "(" & List1.Sum & ")"
                List1.Clear()
                NextKey1 += 1
            Else
                Val1 = Val(Str2.Split("(").ElementAt(1))
                List1.Add(Val1)
            End If
        Next
    End Sub

End Class

'这个类是窗体的
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Cla1 As New Class1
        Cla1._TreeView1 = Me.TreeView1
        Cla1.MySub()
    End Sub
End Class
ivanwfy 2014-09-04
  • 打赏
  • 举报
回复
对,是的,目前节点括号中的数字,就是该节点自身下面的文章数,所以只要累计到各自父节点即可,节点可能是无限级的
office_2007 2014-09-04
  • 打赏
  • 举报
回复
您说的意思是包括父节点本身也加起来所有子节点都要合计总算吗?
一、简介 通过这个课程带大家从零开发一款功能全面的后台管理系统,包括项目搭建、功能实现到最后的Linux系统部署全过程。本课程使用SpringMVC + Spring + Mybatis作为主体框架,使用AdminLTE作为前端框架,使用主流关系型数据库Mysql作为存储数据库,使用非关系型数据库Redis作为缓存数据库,并集成SpringSecuriy安全框架做权限的动态管理,集成Swagger2自动生成接口文档,集成Druid连接池进行SQL性能监控,集成ActiveMQ消息中间件进行异步解耦,提高性能。最后使用linux系统进行服务部署,并搭建nginx反向代理服务器提高网站性能。 二、学习目标 通过本课程的学习带大家掌握SSM框架的开发流程,并熟练使用SpringSecurity做为安全框架进行权限管理,整合相关优秀的开源框架进行功能开发。还在项目中带大家学习前端相关的Jquery、Bootstrap等知识。课程结束之后希望大家能做到独立进行开发项目的目的,增强解决问题的能力,具备功能落地实现的能力。 三、课程涉及知识点 SpringMVC源码分析Mybatis源码分析通用MapperMysql数据库Redis缓存实现ActiveMQ消息中间件SpringSecurity鉴权Swagger2接口文档生成自定义注解AOP切面编程自定义过滤器Logback日志整合Druid性能监控Linux系统Nginx反向代理Ajax异步请求技术Jquery基本使用AdminLTE前端框架Chart图表-线状图和饼状图百度地图定位城市BootStrap前端框架BootStrap-Table插件BootStrap-Treeview插件Markdown编辑器403、404、500错误页面配置数据库事务消息提示插件toastr.js图片上传插件bootstrap fileinput数字滚动效果pv/uv流量统计...四、课程部分内容截图如下 1、首页 2、菜单管理 3、图床管理 4、图标管理 5、留言反馈管理 6、druid监控 7、登录日志

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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