在devexpress网格中显示关系

时间:2018-11-20 06:38:53

标签: c# winforms grid devexpress xpo

有2个对象之间具有关联。 学生和班级。 每个学生都有一个或多个课程。我想向学生展示一个网格控件(devexpress winform),并且我不希望使用主要细节。我想在单个列中显示类,例如:类A-类B(在单行中)或像合并那样拆分行。

2 个答案:

答案 0 :(得分:0)

可以创建一个unbound column并用您的详细数据填充它。请参阅How to access a detail view's data within the CustomUnboundColumnData event handler示例以了解如何执行此操作。

答案 1 :(得分:0)

此信息来自哪个数据库?
如果您使用的是Sql Server,可以像这样合并查询中的数据

declare @student table (studentid int, name varchar(20))
declare @class table (classid int, name varchar(20))
declare @studentclass table (studentid int, classid int)

insert into @student values (1, 'john'), (2, 'mary')
insert into @class values (1, 'english'), (2, 'mathematics')
insert into @studentclass values (1, 1), (1, 2), (2, 1)

select s.studentid,
       s.name,
       stuff(( replace (( select ' - ' + c.name
                          from   @class c
                            inner join @studentclass sc on c.classid = sc.classid
                          where  sc.studentid = s.studentid
                          order by c.name
                          For XML PATH ('')), '', '')
             ), 1, 3, '') as classes
from   @student s

这将返回此结果:

studentid   name    classes 
---------   ----    ------- 
1           john    english - mathematics   
2           mary    english 

其他数据库也可以这样做,语法当然会有所不同