0

我有 devexpress gridview,这个 girdview 的数据来自两个表。下面是这两个表的结构。在 table1 中可以说 ProductID 列是唯一的,在 table2 中 ProductID 可以重复。我想在gridview 中显示每个productID 的每一行。

我不想在 table2 上使用 PIVOT,因为每次为产品插入新值时,我都必须更改 LINQ 实体或数据库对象。

表格1

ProductID ColumnA ColumnB

1------------------------x------------------------ -Y

表2

ProductID 列值

1----------------列C--------Z

1----------------ColumnD--------A

所以在网格中我想要

ProductID 列A 列B 列C 列D

我是否需要在 asp.net 中使用数据表(如果需要的话)并将这个数据表作为数据源传递给网格?或者我可以使用列表(如果可以的话如何?)

我还想将网格中存在的任何数据导出到 Excel。

4

2 回答 2

1

如果我理解正确,您想使用 Master-Detail 视图:

http://demos.devexpress.com/ASPxGridViewDemos/MasterDetail/MasterDetail.aspx

于 2013-07-19T10:14:22.677 回答
0

检查此链接以进行导出GridViews

为了完成您的任务,我认为您可以执行以下操作:

foreach (Table1Class table1Class in Table1ClassList) // Table1ClassList contains all the records from Table1
{
    foreach (Table2Class table2Class in Table2ClassList.Where(e => e.ProductID.Equals(table1Class.ProductId)))
    {
        // Retrieving Column : your FieldNames should be correctly set
        GridColumn columnFromGrid = FinalGrid.Columns.Where(col => col.FieldName.Equals(table2Class.Column)).First();

        // TODO : Populating Column
    }
}

我认为这应该可以解决问题!

于 2013-07-19T08:14:55.913 回答