在GridView中转置列

时间:2013-02-17 10:06:14

标签: c# asp.net

我有一个包含如下数据的数据表。

enter image description here

我想在我的网格视图中显示它,如下所示。它实际上是上表的转置,并为查看产品详细信息添加了一个额外的行,它将是一个链接按钮。 能否帮助我如何使用C#在ASP.net中实现以下要求。

enter image description here

非常感谢, Awais Afzal。

1 个答案:

答案 0 :(得分:0)

假设您的表格是DataTable,您可以使用此类扩展程序重新排序:

public static DataTable Pivot(this DataTable tbl)
{ 
    var tblPivot = new DataTable();
    tblPivot.Columns.Add(tbl.Columns[0].ColumnName);
    for (int i = 1; i < tbl.Rows.Count; i++)
    {
        tblPivot.Columns.Add(Convert.ToString(i));
    }
    for (int col = 0; col < tbl.Columns.Count; col++)
    {
        var r = tblPivot.NewRow();
        r[0] = tbl.Columns[col].ToString();
        for (int j = 1; j < tbl.Rows.Count; j++)
            r[j] = tbl.Rows[j][col];

        tblPivot.Rows.Add(r);
    }
    return tblPivot;
}

并将其设为新DataSource

dataGridView1.DataSource = oldDataTable.Pivot();