gridview中行到列的转换问题 [英] Conversion problem of rows to columns in gridview

查看:87
本文介绍了gridview中行到列的转换问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究这段代码一周,我无法解决这个问题。我的gridview有一个带文本框的行的headertext。有2列有4列。我无法将行转换为列。这是我的代码...



I am working on this code for a week and I couldn't solve this. My gridview has headertext with a textbox as a row. there r 2 rows with 4 columns. I couldn't able to convert rows to columns. Here is my code ...

protected void Pageload()
{     
           DataTable dt = new DataTable();
                DataRow dr = null;
                dt.Columns.Add(new DataColumn("Color", typeof(string)));
                dt.Columns.Add(new DataColumn("1 mois", typeof(string)));
                dt.Columns.Add(new DataColumn("3 mois", typeof(string)));
                dt.Columns.Add(new DataColumn("6 mois", typeof(string)));
                dr = dt.NewRow();
                dr["Color"] = string.Empty;
                dr["1 mois"] = string.Empty;
                dr["3 mois"] = string.Empty;
                dr["6 mois"] = string.Empty;
                dt.Rows.Add(dr);
                ViewState["CurrentTable"] = dt;
                DataTable dtnew=ConvertToColumns(dt);
                gvlistmonoprix.DataSource = dtnew;
                gvlistmonoprix.DataBind();

}
public DataTable ConvertToColumns(DataTable inputTable)
    {
        
        DataTable outputTable = new DataTable();

        // Add columns by looping rows

        // Header row's first column is same as in inputTable
        outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString());

        // Header row's second column onwards, 'inputTable's first column taken
        foreach (DataRow inRow in inputTable.Rows)
        {
            string newColName = inRow[0].ToString();
            outputTable.Columns.Add(newColName);
        }

        // Add rows by looping columns        
        for (int rCount = 1; rCount <= inputTable.Columns.Count -1; rCount++)
        {
            DataRow newRow = outputTable.NewRow();

            // First column is inputTable's Header row's second column
            newRow[0] = inputTable.Columns[rCount].ColumnName.ToString();
            for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
            {
                string colValue = inputTable.Rows[cCount][rCount].ToString();
                newRow[cCount + 1] = colValue;
            }
            outputTable.Rows.Add(newRow);
            
        }
        return outputTable;
        
}

推荐答案

这篇关于gridview中行到列的转换问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆