VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1241|回复: 4

tree view的问题

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-5 14:00:01 | 显示全部楼层 |阅读模式
假如在tree view树下有中国著名大学和世界著名大学两个,就是想实现在tree view点一下中国著名大学或者世界著名大学(数据库为acess里就有二个记录一个是中国著名大学和一个是世界著名大学),在右边dbgridedit1中显示相关的信息,不知代码怎么写????
回复

使用道具 举报

0

主题

53

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-1-6 12:42:01 | 显示全部楼层
是dBgird还是DBedit 这是数据感知控件
如果你得是DBEdit,做法如下:
这必须要求你打开着一个数据集组件,如:adoDataSet
那么你的树treeview不是数据感知控件,但是你可以通过locate绑定到tree的node上,绑定的标志一定要是关键字段。这样每次点击树中的一个节点,就可以迅速得定位到该条记录上,
但是这些DBeidt必须与数据集组件连接。
回复

使用道具 举报

0

主题

53

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-1-6 13:39:01 | 显示全部楼层
如果查询出来的相关信息是多条记录,则你就必须用DBgrid显示了,
这样的话locate定位就不适合
那么就必须先将全部数据加载到adodataset中(考虑速度,不考虑容量),然后通过
ADODataSet1.Filter:='查询字段名称='''+TreeView1.Selected.Text+'''';
ADODataSet1.Filtered:=true; 这样与ADOdataset1相连的DBgrid就显示你所需要的信息了

这里需要声明的是,不要在treeview1的TVGetSelectedIndex事件下写,这会让你的过滤查询无休止的运行的
回复

使用道具 举报

0

主题

13

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-3-31 01:30:01 | 显示全部楼层
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var A:STRING;
begin
  A:=trim(NODE.Text)   ;//NODE.Text 为点中结点的值

ADOQUERY1.CLOSE;
ADOQUERY1.SQL.CLEAR;
ADOQUERY1.SQL.ADD(SELECT * FROM TABLE1 WHERE 著名大学=:AA );
ADOQUERY1.Parameters.ParamByName('AA').Value :=A;
ADOQUERY1.OPEN;

end;
此时如果ADOQUERY 与右边的显示控件建立联接的话,就会显示出来了.
回复

使用道具 举报

0

主题

1

帖子

0.00

积分

新手上路

Rank: 1

积分
0.00
发表于 2020-3-31 12:51:16 | 显示全部楼层
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表