Одинаковые колонки в GridView

МСУ
Дата: 25.03.2010 11:23:12
ShSerge, а слабо универсальный код написать для n-частей? :)

DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
for (int i = 0; i < 14; i++)
    dt.Rows.Add(i, "Name" + i);

GridView1.DataSource = SplitTable(dt, "Name", 5);
GridView1.DataBind();

+ SplitTable
protected DataTable SplitTable(DataTable inputTable, string columnName, int part)
{
    DataTable table = new DataTable();
    table.Columns.AddRange(Enumerable.Range(0, part).Select(d => new DataColumn(string.Format("{0}_{1}", columnName, d))).ToArray());

    for (int i = 0; i < inputTable.Rows.Count; i = i + part)
    {
        string[] values = new string[part];
        for (int j = 0; j < part; j++)
        {
            values[j] = i + j >= inputTable.Rows.Count ? string.Empty : (string)inputTable.Rows[i + j][columnName];
        }
        table.Rows.Add(values);
    }

    return table;
}
ShSerge
Дата: 25.03.2010 11:57:29
МСУ
ShSerge, а слабо универсальный код написать для n-частей? :)

Не, не слабо. Только там получится нехилый динамический sql. Короче, не просто. Зато в случае фиксированного количества, моё решение проще.