Asp.Net合并列并制作GridView模板

时间:2017-12-15 15:04:03

标签: c# asp.net gridview datagridview

我创建了一个带有Datables和列表的GridView,我遇到了一个问题: GridView

我的GridView有重复的答案。 1 id_template有1个name_template,但可以有很多id_forms(和许多名称:1个名称为1)。 我想合并它,以便拥有1个ID,1个名称,以及它们的ID和名称。 我的代码是这样的:

DataTable dt = new DataTable();
        dt.Columns.Add("Id_Template");
        dt.Columns.Add("Name_Template");
        dt.Columns.Add("Id_Form_List");
        dt.Columns.Add("Name_Form_List");

        for (int i = 0; i < listeIdForm.Count; i++)
        {
            dt.Rows.Add(listeIdTemplate[0], listeNomTemplate[0], listeIdForm[i], listeNomForm[i]);
        }
        GridView3.DataSource = dt;
        GridView3.DataBind();

关闭课程,1我是实体&#34;实体&#34;,所以我想制作一个模板,以便有相同的表设计&#34;对于每个实体。没有数据库数据源可以做到吗?

1 个答案:

答案 0 :(得分:1)

您可以压缩所有这些列表(为什么您没有这些属性的单个类?)然后使用GroupBy来获取所需的组:

var tableSource = listeIdTemplate
    .Zip(listeNomTemplate, (id, nom) => new { id, nom })
    .Zip(listeIdForm, (x, idForm) => new { x, idForm })
    .Zip(listeNomForm, (x, nomForm) => new { x.x.id, x.x.nom, x.idForm, nomForm })
    .GroupBy(x => new { x.id, x.nom });

foreach (var idNomGroup in tableSource)
    dt.Rows.Add(
        idNomGroup.Key.id,
        idNomGroup.Key.nom,
        string.Join(",", idNomGroup.Select(x => x.idForm)),
        string.Join(",", idNomGroup.Select(x => x.nomForm)));