以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 递归生成目录树的效率问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60176) |
||||
-- 作者:HappyFt -- 发布时间:2014/11/19 17:00:00 -- 递归生成目录树的效率问题
如上例子中,点击生产单时递归生成其下目录树节点,当中间有一层的节点上千时,速度就很慢,要15秒,但如果是用buildtree的话只要1秒,但因业务需要只能这样生成目录树,请问问题出在哪里?
谢谢! |
||||
-- 作者:Bin -- 发布时间:2014/11/19 17:07:00 -- 加入代码 tr.StopRedraw \'递归生成目录树 tr.ResumeRedraw |
||||
-- 作者:HappyFt -- 发布时间:2014/11/19 17:13:00 -- \'---生成目录树
有加啊,这样加不行吗?到处加了试过都不行唉,老师能否帮我直接加在例子上一下。
|
||||
-- 作者:有点甜 -- 发布时间:2014/11/19 17:16:00 -- Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.Nodes.Add("生产单") |
||||
-- 作者:HappyFt -- 发布时间:2014/11/19 18:32:00 -- 但实际的应用不能那样生成,下图的目录树节点已经生成,只能在点击表单节点后再在其下添加子节点:
所有的上层的节点都按用户权限生成了模块及其下表单,每个用户都是不一样的。现在就是要在点击表单时在其下生成分类的子节点(如订单下面再生成“客户|业务员”等)方便加载数据出来。
如果用4楼的方式,先buildtree生成下面的节点,怎么才能把这些节点连接在上面图示中的已有节点上呢? |
||||
-- 作者:有点甜 -- 发布时间:2014/11/19 19:32:00 -- 代码
Dim dt As DataTable = DataTables("表a") |
||||
-- 作者:HappyFt -- 发布时间:2014/11/20 22:29:00 -- 甜老师,这样改后速度真的很快了,但是上面是只有“生产单号|产品编码”两层节点的,如果是多个呢,已经用全局返回。如下: Cols是一个全局变量,用于生成当前所点击节点下面的式子点,返回的值是的个数是不固定的,遍历那里要怎么改才能通用呢?谢谢!
Dim Cols_sort As String = Cols.replace("|",",") |
||||
-- 作者:有点甜 -- 发布时间:2014/11/20 23:14:00 -- 类似代码
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim dt As DataTable = DataTables("表a") Dim nds As new List(Of WinForm.TreeNode) |
||||
-- 作者:HappyFt -- 发布时间:2014/11/20 23:18:00 -- 谢谢甜老师,这么晚还在回贴! |
||||
-- 作者:HappyFt -- 发布时间:2014/11/27 16:31:00 --
甜老师,这个目录树还是搞不定,主要是目录树列数量是变动的,组合集合不知道怎么生成节点,请帮忙再看一下,重新上传了例子, 点击产品编码就在其下增加所有产品编码的子节点(因为目录树列只有一列,现在会出错) 生产单下生成两级节点,而订单下是生成三级节点。
谢谢! [此贴子已经被作者于2014-11-27 16:32:19编辑过]
|