在DataGridView(Winforms)上将数据源行显示为列

时间:2015-03-31 12:12:48

标签: c# winforms datagridview

我想在DataGridView上显示我的所有DataSource行,但不是作为行而是作为行的列。检索到每12个项目,我想在DataGridView上插入一个新行,并使用DataSource中的更多项目填充此新行(每行12个)。

我的DataSource每个只检索一个项目,并且直接在DataGridView中使用它可以很好地工作,但每个项目显示不同的行。

任何提示?

1 个答案:

答案 0 :(得分:0)

感谢@SriramSakthivel。

private void AddToList(DataTable dt)
    {
        possibleWords = 0;

        // Cleans the data grid view
        WordList.DataSource = null;
        WordList.Refresh();

        // Let's transform the original data table onto another, changing rows by columns
        DataTable table = new DataTable();

        for (int i = 0; i < 10; i++)
        {
            table.Columns.Add(Convert.ToString(i));
        }

        DataRow r;

        int col = 0;
        //for (int k = 0; k < dt.Columns.Count; k++)
        {
            r = table.NewRow();

            for (int j = 0; j < dt.Rows.Count; j++)
            {
                if (col >= 10)
                {
                    table.Rows.Add(r);
                    col = 0;
                    r = table.NewRow();
                }

                r[col++] = (dt.Rows[j][0]).ToString().ToUpper();
                possibleWords++;
            }

            table.Rows.Add(r);
        }

        // Puts the new data table as datasource of the word list
        DataView dv = table.DefaultView;
        WordList.DataSource = dv;

        if (possibleWords == 0)
            return;

        WordList.Columns[0].DefaultCellStyle.BackColor = Color.WhiteSmoke;
        WordList.ColumnHeadersVisible = false;
        WordList.RowHeadersVisible = false;
    }