如何在win形式的一个datagridview中显示父数据和子数据(vb.net) [英] how to display parent and child data in one datagridview in win form (vb.net)

查看:82
本文介绍了如何在win形式的一个datagridview中显示父数据和子数据(vb.net)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我正在努力在一个datagridview中使用vb.net(VS2012)以win形式显示父级和子级详细信息,样本如下:


数据网格视图中的
显示带有+的第一列或第一列名称为+

+ ID,NAME,..

+ ID,NAME,..



当在父行上点击+时,结果应为



- ID,NAME

ID,ORDER,AMOUNT ..

ID,ORDER,AMOUNT ..

+ ID ,NAME,..

+ ID,NAME,..



提前感谢任何想法和帮助。



哎呀,我应该告诉更多细节:我创建datarelation

昏暗关系As DataRelation

Dim table1Column As DataColumn

Dim table2Column As DataColumn



table1Column = ds.Tables(" Table1")。Columns(0)

table2Column = ds.Tables(" tabl e2)。列(0)

relation = New DataRelation(" relation",table1Column,table2Column)



ds.Relations。添加(关系)

datagridview1.Datasourse = ds.Tables(0)

在datagridview中只显示父表未包含子表



我非常感谢你对世界的回复(感谢来自澳大利亚)

Hi all,

I am struggling as to display parent and child details in one datagridview using vb.net (VS2012) in win form with sample as following:

in datagridview shows first column with "+" or first column name is "+"
+ ID, NAME,..
+ ID, NAME,..

When Click + at parent row and result should be as

- ID, NAME
ID, ORDER, AMOUNT..
ID, ORDER, AMOUNT..
+ ID, NAME,..
+ ID, NAME,..

Thanks in advance for any idea and help.

Ooops, I should tell more details as : I create datarelation
Dim relation As DataRelation
Dim table1Column As DataColumn
Dim table2Column As DataColumn

table1Column = ds.Tables("Table1").Columns(0)
table2Column = ds.Tables("table2").Columns(0)
relation = New DataRelation("relation", table1Column, table2Column)

ds.Relations.Add(relation)
datagridview1.Datasourse = ds.Tables(0)
In datagridview displays only "parent table" not included "child table"

I appreciate so much for your reply from the world (Thanks from Australia)

推荐答案

如果您使用定义了表之间的关系,框架将处理其余的。但是我发现TreeView的效果更好。
If you use a DataSet that defines the relationship between the tables, the framework will handle the rest. But I have found that a TreeView works better.


如果确实涉及了子父关系,那么更好的控制可能是 TreeView 。有了它,您将丢失所有列数据,但您可以使用这两个控件。当 TreeView 中的选择发生变化时,您可以处理相应的事件并相应地在其他控件中显示详细数据。这很容易。



还有另一种方法。 Peter Brightman 演示了如何在虚拟模式下使用 ListView 控件用列表示树结构和节点细节。请试一试。即使他没有创建一个完全成熟的控件,它看起来和工作非常好,并且非常有用:

虚拟模式TreeListView [ ^ ]。



祝你好运,

-SA
If child-parent relation is really involved, the better control could be TreeView. With it, you will loose all your column data, but you can use both controls. When selection in TreeView changes, you can handle respective events and show detail data in some other control accordingly. This is easy enough.

There is another approach. Peter Brightman demonstrated how the ListView control can be used in virtual mode to represent both tree structure and node detail with columns. Please give it a try. Even though he did not create a fully-fledged control out of it, it looks and works really well and can be very useful:
Virtual Mode TreeListView[^].

Good luck,
—SA


看看:演练:创建一个Master-Detail Windows窗体 [ ^ ]



祝你好运

Espen Harlinn
Have a look at: Walkthrough: Creating a Master-Detail Windows Form[^]

Best regards
Espen Harlinn


这篇关于如何在win形式的一个datagridview中显示父数据和子数据(vb.net)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆