【问题标题】:Convert Gridview rows to Columns in ASP.NET C #在 ASP.NET C# 中将 Gridview 行转换为列
【发布时间】:2020-03-29 09:48:59
【问题描述】:

我正在使用 asp.net c# 和 SQL。我已将我的GridView 绑定到一个 XML 文件和数据,如下图 1 所示。有人可以就我如何修改我的代码以使我的数据显示如图 2 提出建议吗?

这是我的代码

   protected void RotateandBind()
   {

    XmlReader myxmlFile = XmlReader.Create("C:/stgt.xml", new XmlReaderSettings());
    DataSet dss = new DataSet();
    dss.ReadXml(myxmlFile);
    GridView1.DataSource = dss.Tables["Attribute"];
    DataTable dtbefore = GridView1.DataSource as DataTable;
    DataTable dtafter = new DataTable();


    for (int i = 0; i <= dtbefore.Rows.Count; i++)
    {

        dtafter.Columns.Add("");
    }

    for (int k = 0; k < dtbefore.Columns.Count; k++)
    {
        DataRow dr = dtafter.NewRow();

        dr[0] = dtbefore.Columns[k].ColumnName.ToString();
        for (int j = 0; j < dtbefore.Rows.Count; j++)
        {
           dr[j + 1] = dtbefore.Rows[j][k].ToString();
        }
        dtafter.Rows.Add(dr);
    }


  }

【问题讨论】:

标签: c# sql asp.net gridview transpose


【解决方案1】:

这应该适合你。它获取第一行,将其转换为列标题,然后删除包含列标题的第一行。

foreach (DataColumn column in dtafter.Columns)
{
 string cName = dtafter.Rows[0][column.ColumnName].ToString();
if (!table.Columns.Contains(cName) && cName != "")
{
     column.ColumnName = cName;
}

}

dtafter.Rows[0].Delete(); //If you don't need that row any more

【讨论】:

    猜你喜欢
    • 2020-10-23
    • 2010-10-21
    • 1970-01-01
    • 2012-09-22
    • 2013-05-01
    • 1970-01-01
    • 2016-05-11
    • 2013-01-28
    • 2013-05-30
    相关资源
    最近更新 更多