以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  一个关于Ttreview的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28066)

--  作者:dreamyuan
--  发布时间:2013/1/17 16:47:00
--  一个关于Ttreview的问题

例我有个Treeview1里有个“所有类型”的根节点,表里商品类型只有个“商品类型”列,能否只用BuildTree实现把“商品类型”加载在“所有类型”子节点下!


--  作者:lin_hailun
--  发布时间:2013/1/17 16:55:00
--  
 思路颠倒了。应该是用buildTree生成目录树以后,插入所有类型的。

 比如 trv 是treeview

 trv.Nodes.Insert("显示所有行", 0)

--  作者:dreamyuan
--  发布时间:2013/1/17 17:08:00
--  

trv.Nodes.Insert("显示所有行", 0)

那跟加载的是同一个根节点,我是想把加载的内容放在“所有类型”的子节点中


--  作者:lin_hailun
--  发布时间:2013/1/17 17:23:00
--  
以下是引用dreamyuan在2013-1-17 17:08:00的发言:

trv.Nodes.Insert("显示所有行", 0)

那跟加载的是同一个根节点,我是想把加载的内容放在“所有类型”的子节点中


插入一个节点以后,把下面的节点向右移动一格。

比如代码

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.Nodes(1).MoveRight()

--  作者:dreamyuan
--  发布时间:2013/1/17 17:39:00
--  

Dim tv As WinForm.TreeView
tv =e.Form.Controls("TreeView1")
tv.BuildTree("商品类型", "商品类型")
tv.Nodes(0).Ic
tv.Nodes(0).MoveRight()
tv.Nodes.Insert("所有类型", 0)

这样不行

 


--  作者:lin_hailun
--  发布时间:2013/1/17 17:41:00
--  
 这样

Dim tv As WinForm.TreeView
tv =e.Form.Controls("TreeView1")
tv.BuildTree("商品类型", "商品类型")
tv.Nodes.Insert("所有类型", 0)
tv.Nodes(1).MoveRight()

--  作者:dreamyuan
--  发布时间:2013/1/17 17:45:00
--  

这样只能移一个,如果多就麻烦了,还不如表里多个列值为“所有类型”呵呵,有没有更简单的

比如给Nodes加个BuildTree方法


--  作者:lin_hailun
--  发布时间:2013/1/17 17:54:00
--  
 可以这样,用sql语句生成一个表。

 dim cmd as new sqlcommand
 cmd.CommandText = "Select \'所有类型\' as 附加列,  商品类型 from {商品类型}"
 dim dt as datatable = cmd.ExecuteReader
 
 Dim tv As WinForm.TreeView
 tv =e.Form.Controls("TreeView1")
 tv.BuildTree(dt, "附加列|商品类型")

--  作者:dreamyuan
--  发布时间:2013/1/17 19:43:00
--  

谢谢林老师,OK了