我做了一个Treeview来加载数据库信息,然后点一个节点,在一个Listview里出现这个项的详细记录。我的问题是,如果我给这个项了添加或删除了数据,想通过Treeview重新LOAD一下,来获得当前节点对应项里的更新后的信息,这个怎么实现?(我试过在Listview里通过item.remove的方法,但是,这样给联系删除带来问题,如果Treeview能自动刷新目前选中的这个项,那就用不到Listview的事件了。)可能表述有点乱,希望大家谅解。
调试欢乐多
如果删除,则将Listview清空。
如果是修改,将当前Treeview的节点 Label值替换成新的,修改Listview信息 (Key值应该不变吧?)Treeview_click中 刷新 Listview
Treeview_click中刷新,因为我的数据加载就是在这个事件里的。我想数据添加进去后,在调用这个点击事件,参数怎么来?那个ByVal Node As MSComctlLib.Node 参数怎么写?
再写一个 LoadData2(Node As Node),根据treeview节点装数据代码不给你了,给你这个思路
楼主应当再表述的清楚些呵呵。 要不然的话不难呀: 引用了 snowmiao2002(苗苗)的。...
如果是添加,则在Listview中添加当前前信息;
在listview中进行 add
数据库中进行 insert
如果删除,则将Listview清空。
在listview中进行 Remove
数据库中进行 delete
如果是修改,将当前Treeview的节点 Label值替换成新的,修改Listview信息 (Key值应该不变吧?)Treeview_click中 刷新 Listview
Treeview_click中刷新,因为我的数据加载就是在这个事件里的。我想数据添加进去后,在调用这个点击事件,参数怎么来?那个ByVal Node As MSComctlLib.Node 参数怎么写?----------------------
数据添加没有必要进行刷新呀?如果你同时在listview中进行过操作的话。这个时候listview中已是最新的了。 如果不同时在listview中进行操作的话。也可以刷新.因为你在数据添加的时候肯定是知道要加入到那一个treeview中的节点。
(在调用这个点击事件,参数怎么来?那个ByVal Node As MSComctlLib.Node 参数怎么写?)
你可以做成一个函数嘛。 这时就可以传参数据啦
'刷新员工信息数据
Dim nodeX As Node
Set nodeX = frmEmplyee.tvwDept.Nodes(g_strNodeKey)
Call frmEmplyee.tvwDept_NodeClick(nodeX)
这里的g_strNodeKey为你所选择的节点,记录下来
别忘把tvwDept_NodeClick设成public的,没什么影响
Private Sub tvGoodType_NodeClick(ByVal Node As MSComctlLib.Node)
Debug.Print Node.Tag
Debug.Print Node.Key
If Node.Children > 0 Then '如果当前结点有子结点,则跳出
If Node.Key <> "All" Then
Exit Sub
End If
End If
Call FillGrid(Node.Key) '填充表格
End Sub
哈哈,想起来就想骂自己,呵呵,是我对ADO不熟悉,在关闭一个conn连接之前又调用了那个Load2Lv函数,造成相互干扰。问题解决,散分,多谢大家帮助。(不过,我有个感觉,ADO速度还真的慢啊,比DAO差了好几个级别,但是功能强大点,没话说。)