Foxtable(狐表)用户栏目专家坐堂 → [求助]这个目录树怎么实现?


  共有14633人关注过本帖树形打印复制链接

主题:[求助]这个目录树怎么实现?

帅哥哟,离线,有人找我吗?
huntkey
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
[求助]这个目录树怎么实现?  发帖心情 Post By:2011/5/7 12:26:00 [只看该作者]

图片点击可在新窗口打开查看
这是我想实现的效果。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树.table


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/5/7 13:02:00 [只看该作者]

看不到图片

 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/7 13:52:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:_z({_15jo2u3ztx%oe`xchq.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/7 14:09:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/7 14:32:00 [只看该作者]

看了,这样好像不能实现哦。

我的表结构已经设计好了,在不更改表结构的前提想尽量通过代码来实现


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/7 15:58:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/7 16:10:00 [只看该作者]

不改也行,只需将层次列改为整数型,看这个例子:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.table

 

不过我还是建议你按照帮助来,因为对普通用户来说,下面的代码有点复杂,且严格要求数据输入规范:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nod As WinForm.TreeNode
Dim dr As DataRow
Dim drs As List(of DataRow) = DataTables("表A").Select("部门名称 Is Not Null","部门名称")
For i As Integer = 0  To drs.Count - 1
    dr = drs(i)
    If dr("层次") = 0 Then
        nod = trv.Nodes.Add(dr("部门名称"))
    Else
        Do
            If nod.Level = dr("层次")
                nod = nod.ParentNode.Nodes.Add(dr("部门名称"))
                Exit Do
            ElseIf nod.Level = dr("层次") - 1
                nod = nod.Nodes.Add(dr("部门名称"))
                Exit Do
            Else
               nod = nod.ParentNode
            End If
        Loop
    End If
Next

[此贴子已经被作者于2011-5-7 16:10:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/7 16:40:00 [只看该作者]

先谢谢狐狸爸爸和BLACK ZHU了

正如狐狸爸爸所说代码很难懂哦, 

If nod.Level = dr("层次")  既然是做判断,哪nod.level的值是怎么确定的呢?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/7 16:42:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/7 16:51:00 [只看该作者]

这个我知道,可能是我没说清楚,我的意思是程序是如何知道当前是哪一个nod呢?

 


 回到顶部
总数 14 1 2 下一页